Generate your personal 8-bit avatars using Cellular Automata, a mathematical model that simulates life, survival, and extinction
Try the interactive demo here :sparkles::sparkles:
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.
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-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:
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
On the other hand, the backend service is deployed in Google Cloud Run. I first build the image found in
./backend/Dockerfileand deploy them to GCP. Check
.github/workflows/cloud-run.ymlfor 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
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.