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

Overview

Github Pages Cloud Run Frontend CI Backend CI

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.

Owner
Lj Miranda
I build things—and occasionally write about stuff
Lj Miranda
This repo presents you the official code of "VISTA: Boosting 3D Object Detection via Dual Cross-VIew SpaTial Attention"

VISTA VISTA: Boosting 3D Object Detection via Dual Cross-VIew SpaTial Attention Shengheng Deng, Zhihao Liang, Lin Sun and Kui Jia* (*) Corresponding a

104 Dec 29, 2022
Very Simple 2 Message Spammer!

Very Simple 2 Message Spammer!

Syntax. 4 Dec 06, 2022
A simple way to read and write LAPS passwords from linux.

A simple way to read and write LAPS passwords from linux. This script is a python setter/getter for property ms-Mcs-AdmPwd used by LAPS inspired by @s

Podalirius 36 Dec 09, 2022
Simple cash register system made with guizero

Eje-Casher なにこれ guizeroで作った簡易レジシステムです。実際にコミケで使う予定です。 これを誰かがそのまま使うかどうかというよりは、guiz

Akira Ouchi 4 Nov 07, 2022
Online HackerRank problem solving challenges

LinkedListHackerRank Online HackerRank problem solving challenges This challenge is part of a tutorial track by MyCodeSchool You are given the pointer

Sefineh Tesfa 1 Nov 21, 2021
Python Library to get fast extensive Dummy Data for testing

Dumda Python Library to get fast extensive Dummy Data for testing https://pypi.org/project/dumda/ Installation pip install dumda Usage: Cities from d

Oliver B. 0 Dec 27, 2021
pyreports is a python library that allows you to create complex report from various sources

pyreports pyreports is a python library that allows you to create complex reports from various sources such as databases, text files, ldap, etc. and p

Matteo Guadrini aka GU 78 Dec 13, 2022
PwnDatas-DB-Project(PDDP)

PwnDatas-DB-Project PwnDatas-DB-Project(PDDP) 安裝依賴: pip3 install pymediawiki 使用: cd /opt git https://github.com/JustYoomoon/PwnDatas-DB-Project.git c

21 Jul 16, 2021
Yakuake session management

yman is a python script used for saving/restoring yakuake sessions (currently running commands, working directories, environment variables, tab titles)

Szymon Borecki 6 Jun 25, 2022
Script to quickly get the metrics from Github repos to analyze.

commit-prefix-analysis Script to quickly get the metrics from Github repos to analyze. Setup Install the Github CLI. You'll know its working when runn

David Carpenter 1 Dec 17, 2022
List of all D&D 5e monsters: WotC + popular third-party sourcebooks

Xio's Guide to Monsters If you're a DM like me, and you have multiple sources of D&D 5e monsters that include WotC as well as third-party suppliers, y

20 Jan 06, 2023
The refactoring tutorial I wrote for PyConDE 2022. You can also work through the exercises on your own.

Refactoring 101 planet images by Justin Nichol on opengameart.org CC-BY 3.0 Goal of this Tutorial In this tutorial, you will refactor a space travel t

Kristian Rother 9 Jun 10, 2022
Openfe - Alchemical free energy calculations for the masses

The Open Free Energy library Alchemical free energy calculations for the masses.

33 Dec 22, 2022
This is a backport of the BaseExceptionGroup and ExceptionGroup classes from Python 3.11.

This is a backport of the BaseExceptionGroup and ExceptionGroup classes from Python 3.11. It contains the following: The exceptiongroup.BaseExceptionG

Alex Grönholm 19 Dec 15, 2022
The ROS publisher/subscriber example packaged as a snap

publisher-subscriber The ROS publisher/subscriber example packaged as a snap, based on ROS Noetic and Ubuntu Core 20. Strictly confined. This example

3 Dec 03, 2021
Скрипт позволяет выгрузить участников чатов/каналов(по чату для комментариев) и сообщения в различные форматы файлов.

TG-Parser Парсер участников и сообщений из ТГ-Чатов и чатов для комментариев в ТГ-Каналах Возможности Выгрузка участников групп/каналов(по чату для ко

50 Jan 06, 2023
Create standalone, installable R Shiny apps using Electron

WARNING This is still very much a work in progress and nothing can be assumed stable in any way Temp notes: Two types of created installer, based on w

Chase Clark 5 Dec 24, 2021
A NetBox Plugin that gives a UI for generating, comparing and deploying configurations to devices.

netbox_config_plugin - A plugin to generate, compare and deploy configurations This plugin allows you to execute your code to generate a config for a

Jo 11 Dec 21, 2022
Random Turkish name generator with realistic probabilities.

trnames Random Turkish name generator with realistic probabilities. Based on Trey Hunner's names package. Installation The package can be installed us

Kaan Öztürk 20 Jan 02, 2023
100 Days of Python Programming

100 days of Python Following the initiative of my friend Helber Belmiro, who is almost done with his 100 days of Java, I have decided to start my 100

Henrique Pereira 19 Nov 08, 2021