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

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.

Running the development server

The easiest way to run Sprites-as-a-service locally is via docker
. 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
. 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

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