• Stars
    star
    304
  • Rank 136,430 (Top 3 %)
  • Language Vue
  • License
    MIT License
  • Created over 4 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Generate your personal 8-bit avatars using Cellular Automata, a mathematical model that simulates life, survival, and extinction

Github Pages Cloud Run Frontend CI Backend CI

Try the interactive demo here

I do not authorize the use of anything generated by this project for the selling of NFTs. 🙅‍❌

Sprites-as-a-Service is an open-source web application that allows you to generate custom 8-bit sprites using Cellular Automata, particularly Conway's Game of Life. Generate a unique sprite given a text, and control extinction and survival rates. In addition, you can also access the generator via a REST API. Use it for your chat app or games!

The frontend is made with Vue.js (with Nuxt.js) whereas the backend is done using Python and FastAPI.

You can also read my creative process and motivation for building this app in my blog

Running the development server

The easiest way to run Sprites-as-a-service locally is via docker compose. First, clone this repository:

git clone [email protected]:ljvmiranda921/sprites-as-a-service.git

then build the images:

cd sprites-as-a-service
docker-compose build

This will then build two images, sprites-backend and sprites-frontend, for the backend and frontend services of the web app. You can then run them with the command:

docker-compose -d up

You should be able to see the application running at localhost:8080. Close these services using:

docker-compose down

Production server and deployment

The frontend demo application is currently deployed in my website. I first generate a static website using Nuxt's npm run generate, then serve it on Github pages. To see the frontend deployment procedure, I encourage you to check .github/workflows/gh-pages.yml.

On the other hand, the backend service is deployed in Google Cloud Run. I first build the image found in ./backend/Dockerfile and deploy them to GCP. Check .github/workflows/cloud-run.yml for more information.

I highly-encourage you to use the Docker images published in this repository. You might not need the frontend component itself, but the backend can be deployed as a microservice.

docker pull docker.pkg.github.com/ljvmiranda921/sprites-as-a-service/sprites-backend:latest

Notable Implementations

  • @danielgjackson has a pure-Javascript port for Sprites-as-a-Service. From that he made Infinite Sprites! I encourage you to check it out and spend your hours looking at them!
  • @yurkth created Sprator, a GUI application that generates sprites using cellular automaton. Here, you can set a seed, base & background colors, and size!

License

The content of this project itself is licensed under the Creative Commons Attribution 4.0 license, and the underlying source code used to generate the sprites and build the website is licensed under the MIT license.

More Repositories

1

pyswarms

A research toolkit for particle swarm optimization in Python
Python
1,258
star
2

prodigy-pdf-custom-recipe

Custom recipe and utilities for document processing
Python
199
star
3

seagull

A Python Library for Conway's Game of Life
Python
175
star
4

ljvmiranda921.github.io

✨ Github repository for my website
HTML
62
star
5

gym-lattice

An HP 2D Lattice Environment with a Gym-like API for the Protein Folding Problem
Python
54
star
6

calamanCy

NLP pipelines for Tagalog using spaCy
Python
41
star
7

burnout-barometer

A simple Slack tool to log, track, and assess you or your team's stress and work-life
Go
32
star
8

vs-split

A Python library for creating adversarial splits
Python
13
star
9

cv

Curriculum vitae of Lester James V. Miranda
TeX
10
star
10

abyss

Descend into the abyss | A retro action-roguelike game
GDScript
6
star
11

dataflow-cookiecutter

Create production-ready Dataflow projects in a zap! ⚡
Python
5
star
12

spacy-span-analyzer

Simple tool to analyze spans in your dataset. Implementation of Papay et al's work (EMNLP 2020) on span performance prediction
Python
5
star
13

scratch

📓 Scratch notebooks and random assortment of projects. Think of this as a scratch paper of my ideas.
Jupyter Notebook
5
star
14

gallery

📷 Gallery for Gameboy Camera
HTML
3
star
15

LiBERTus

Multilingual BERT model for Ancient and Historical Languages for SIGTYP Shared Task 2024
Python
3
star
16

ud-tagalog-spacy

Training a POS Tagger and Dependency Parser for a Low-Resource Language (Tagalog)
Python
2
star
17

comments.ljvmiranda921.github.io

Blog comments for my personal blog: ljvmiranda921.github.io
1
star
18

pfn-rl-practice

My solutions to the 2017 PFN Intern Coding exercise in Reinforcement Learning
Python
1
star