Try the interactive demo here
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.