whatisgithub

What is esp32-147b-genart?

purzbeats/esp32-147b-genart — explained in plain English

Analysis updated 2026-06-24

17C++Audience · developerComplexity · 3/5Setup · hard

In one sentence

C++ firmware for an ESP32-S3 microcontroller that plays four looping generative art animations on a postage-stamp-sized 1.47-inch screen at 91 fps using dual-core processing.

Mindmap

mindmap
  root((esp32-147b-genart))
    Visual effects
      Falling sand
      Flowing plasma
      Expanding rings
      Moire pattern
    Engineering
      Dual-core rendering
      91 fps output
      Randomized palette
      Button switching
    Hardware
      ESP32-S3 board
      1.47B screen variant
      Backlight pin warning
    Tech
      C++
      Arduino
      LovyanGFX
    Planned
      Motion sensor tilt
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Flash four ready-made generative art animations onto an ESP32-S3 with a 1.47B screen using the Arduino toolchain

USE CASE 2

Learn dual-core Arduino programming by studying how this project overlaps frame calculation and screen output across two processor cores

USE CASE 3

Use the falling-sand simulation as a starting point for your own physics-based embedded art project

What is it built with?

C++ArduinoLovyanGFX

How does it compare?

purzbeats/esp32-147b-genarteversinc33/karyoharitha-08/esp32_test
Stars171717
LanguageC++C++C++
Setup difficultyhardhardmoderate
Complexity3/55/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires an ESP32-S3 board with the specific 1.47B screen variant, the backlight pin differs from common variants and using the wrong pin leaves the screen dark.

No license information was provided in the explanation.

So what is it?

This project runs animated generative art on a tiny 1.47-inch screen attached to an ESP32-S3 microcontroller board. The screen is about the size of a postage stamp, with a resolution of 172 by 320 pixels, and the board is a small, inexpensive piece of hardware typically used for hobby electronics projects. The code produces four looping visual effects that you can switch between by pressing a button on the board. The main effect is a falling-sand simulation. Colored grains of sand fall from an emitter at the top of the screen, pile up at the bottom, and get nudged sideways by a simulated breeze. The palette of colors, the wind strength, and the spray pattern are randomized each time you power the board on, so each run looks different. When the sand pile gets too high, it avalanche-resets and starts over. The other three effects are a soft flowing plasma (blobs of color moving through each other), concentric expanding rings, and a moiré interference pattern made from overlapping sine waves. Getting all four effects to run smoothly required some engineering work. The board has two processor cores, and the code uses both: one core calculates the next frame while the other simultaneously sends the previous frame to the screen over a high-speed data connection. This overlap means the device can display about 91 frames per second, which is the physical limit of the screen's data interface. The README includes a notable hardware warning: the specific board variant used here (the "1.47B") has its screen backlight wired to a different pin than the more common variant, and using the wrong pin leaves the screen working but completely dark. The developer documented this after spending several days debugging it. The project is written in C++ using the Arduino development framework and a display library called LovyanGFX. A planned next step is to wire up the board's built-in motion sensor so that tilting the board physically changes where the sand falls.

Copy-paste prompts

Prompt 1
I have an ESP32-S3 with a 1.47B screen and I want to flash the esp32-147b-genart firmware. Walk me through the Arduino IDE setup, board selection, and the correct backlight pin configuration.
Prompt 2
The falling-sand effect in esp32-147b-genart uses a randomized color palette. I want to lock it to a specific four-color palette. Show me where to change the palette logic in the code.
Prompt 3
Explain how esp32-147b-genart uses both ESP32-S3 cores to achieve 91 fps. I want to apply the same double-buffering pattern to my own animation project.
Prompt 4
I want to add a fifth effect to esp32-147b-genart: a Conway Game of Life simulation. Write the C++ class that fits the existing effect-switching structure.
Prompt 5
The README mentions wiring up the built-in motion sensor so tilting changes where sand falls. Write the accelerometer integration code using the ESP32-S3 built-in IMU.

Frequently asked questions

What is esp32-147b-genart?

C++ firmware for an ESP32-S3 microcontroller that plays four looping generative art animations on a postage-stamp-sized 1.47-inch screen at 91 fps using dual-core processing.

What language is esp32-147b-genart written in?

Mainly C++. The stack also includes C++, Arduino, LovyanGFX.

What license does esp32-147b-genart use?

No license information was provided in the explanation.

How hard is esp32-147b-genart to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is esp32-147b-genart for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.