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
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,
the backend and frontend services of the web app. You can then run them with
docker-compose -d up
You should be able to see the application running at
localhost:8080. Close these services using:
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
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
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