HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
lets-all-be-stupid-forever
circuit-artist
C2024–2025
lets-all-be-stupid-forever / circuit-artist

circuit-artist

Circuit Artist is a digital circuit drawing and simulation game.

2Distinct people
5Mentions
0Explicit recommenders
485GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Circuit Artist is a digital circuit drawing and simulation game.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month5 dated mentions

Observed mentions: 2024-09-14 22:43:51 UTC to 2025-12-31 16:12:20 UTC.

01232024-09-01 00:00:00 UTC to 2024-10-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 commentsSep 20242024-10-01 00:00:00 UTC to 2024-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-11-01 00:00:00 UTC to 2024-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-12-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-01 00:00:00 UTC to 2025-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-02-01 00:00:00 UTC to 2025-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-03-01 00:00:00 UTC to 2025-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-04-01 00:00:00 UTC to 2025-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsApr 20252025-05-01 00:00:00 UTC to 2025-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-01 00:00:00 UTC to 2025-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-07-01 00:00:00 UTC to 2025-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-08-01 00:00:00 UTC to 2025-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-01 00:00:00 UTC to 2025-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-10-01 00:00:00 UTC to 2025-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-01 00:00:00 UTC to 2025-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-12-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 3 mentions; 2 submissions, 1 commentsDec 2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Sep 20242024-09-01 00:00:00 UTC2024-10-01 00:00:00 UTC211
Oct 20242024-10-01 00:00:00 UTC2024-11-01 00:00:00 UTC000
Nov 20242024-11-01 00:00:00 UTC2024-12-01 00:00:00 UTC000
Dec 20242024-12-01 00:00:00 UTC2025-01-01 00:00:00 UTC000
Jan 20252025-01-01 00:00:00 UTC2025-02-01 00:00:00 UTC000
Feb 20252025-02-01 00:00:00 UTC2025-03-01 00:00:00 UTC000
Mar 20252025-03-01 00:00:00 UTC2025-04-01 00:00:00 UTC000
Apr 20252025-04-01 00:00:00 UTC2025-05-01 00:00:00 UTC000
May 20252025-05-01 00:00:00 UTC2025-06-01 00:00:00 UTC000
Jun 20252025-06-01 00:00:00 UTC2025-07-01 00:00:00 UTC000
Jul 20252025-07-01 00:00:00 UTC2025-08-01 00:00:00 UTC000
Aug 20252025-08-01 00:00:00 UTC2025-09-01 00:00:00 UTC000
Sep 20252025-09-01 00:00:00 UTC2025-10-01 00:00:00 UTC000
Oct 20252025-10-01 00:00:00 UTC2025-11-01 00:00:00 UTC000
Nov 20252025-11-01 00:00:00 UTC2025-12-01 00:00:00 UTC000
Dec 20252025-12-01 00:00:00 UTC2026-01-01 00:00:00 UTC321

What Hacker News says

5 sources
rafinha·Dec 31, 2025Submission

Show HN: Circuit Artist – Circuit simulator with propagation animation, rewind

Hello, Circuit Artist is a game about drawing digital circuits as pixel art — like MS Paint, but pixels are wires and little triangles are NANDs. Hit play and the simulation runs in real time. It's fully white-box: every wire's state is visible. I launched it last year with a unit-delay simulation that ran until convergence on each update. It worked, but I realized it had some fundamental problems: (i) It hid what was actually happening. Players couldn't tell the difference between a ripple carry adder and a look-ahead adder — everything just resolved instantly. (ii) Design bugs became "game bugs." When players had non-converging wires (like A = not(A)), the game couldn't explain why or where the error was. (iii) Layout didn't matter. A NAND on one side of the map would instantly propagate to the opposite side, making spatial decisions me
Read the rest
aningless. Unit delay probably works better for schematic-based simulators like Logisim, not a layout-focused game like this. (iv) Propagation visualization couldn't be added on top of the unit-delay engine — there was no notion of direction or distance. So I rebuilt the engine with variable-delay event-based simulation using an adaptation of Elmore delay. The delay for each wire depends on distance and fanout — longer wires are slower, higher fanout adds delay, branching wires are faster. For the implementation: I compute Elmore delay over wire trees. Each pixel has resistance and capacitance, with NAND inputs as nodes to account for fanout. For non-tree wire graphs, I build a Dijkstra-based spanning tree (driver as root) and interpolate for edges outside the tree. I calculate the delay for each node and project it back to the image so every pixel has a distance. This lets me animate propagation with a glow effect during simulation. The shader knows when each wire was triggered, the current time, and the Elmore distance of each pixel, so it resolves state per-pixel in real time. On top of that: - Time rewind: the simulation is now delta-based, so players can freeze and scrub backwards to debug. Super useful for cyclic circuits. - Layers: since timing matters now, I added up to 3 layers. NANDs only go on the bottom layer, upper layers propagate faster (lower capacitance). Lets you route wires above dense NAND areas. The game has a campaign for learning from scratch, though it's still incomplete and in progress. I'm working toward Steam Workshop support so people can create their own campaigns to teach different concepts or cover more advanced topics. GitHub (full source): https://github.com/lets-all-be-stupid-forever/circuit-artist Steam: https://store.steampowered.com/app/3139580/Circuit_Artist/
135 points · Open discussion
Build instructions are a bit sparse. $ git clone https://github.com/lets-all-be-stupid-forever/circuit-artist... Cloning into 'circuit-artist'... remote: Enumerating objects: 326, done. remote: Counting objects: 100% (326/326), done. remote: Compressing objects: 100% (269/269), done. remote: Total 326 (delta 59), reused 306 (delta 52), pack-reused 0 (from 0) Receiving objects: 100% (326/326), 1.41 MiB | 7.70 MiB/s, done. Resolving deltas: 100% (59/59), done. $ cd circuit-artist/ $ mkdir build $ cd build/ $ cmake . CMake Warning: Ignoring extra path from command line: "." CMake Error: The source directory "/home/chris_ji/code/circuit-artist/build" does not appear to contain CMakeLists.txt. Specify --help for usage, or press the help button on the CMake GUI. $ cmake .. -- The C compiler identification is GNU 11.4.0 -- The CXX compile
Read the rest
r identification is GNU 11.4.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done CMake Error at CMakeLists.txt:17 (add_subdirectory): The source directory /home/chris_ji/code/circuit-artist/third_party/raylib does not contain a CMakeLists.txt file. CMake Error at CMakeLists.txt:18 (add_subdirectory): The source directory /home/chris_ji/code/circuit-artist/third_party/nativefiledialog-extended does not contain a CMakeLists.txt file. -- Configuring incomplete, errors occurred! $
In Show HN: I made a digital circuit drawing and simulation game
rafinha·Sep 14, 2024Submission

Show HN: I made a digital circuit drawing and simulation game

Inspired by games like Turing Complete/Virtual Circuit Board/Logic World, I tried to make a mix of aseprite and wiredworld/wired-logic, the idea being the user can build a digital circuit using a "fullstack" pixelart creation workflow. The circuit is just an image. The primitives are (i) connected wires which have undefined, 0 or 1 state during simulation (displayed brighter or darker in function of the state) and (ii) NANDs, which are little pixel triangles. During simulation the user can interact with any wire by clicking on it, toggling its state, which is cool for messing around when learning. The simulation uses a unit-delay event driven algorithm. Then, on top of that there are little wire interfaces on the left side of the image that communicate with an external system. This external system is defined in lua and is simulated toget
Read the rest
her with the main circuit (they alternate until convergence). By default there's a sandbox mode with a clock and a power-on-reset signal. The user can choose other "levels", where the API change and there are some problems to solve, from finding if a number is multiple of 3 to solving hanoi tower to finding if a number is prime. The idea is that if the user want to learn but not sure what to do they can try to solve these puzzles, or they can change the lua scripts to add their own stuff/interface for a custom project. I've also included a small wiki (circuitopedia) with some basic digital concepts to guide those who are new or are a bit rusty. It's not super detailed but I guess it can at the very least present the concepts so the user can dig further on more serious material if they want to. I developed the game in C with raylib, with scripting in lua/luajit. I've put the game on steam (for windows) and released the source code on github under GPLv3. There's also a web demo version on itch.io, even though it's a bit laggy: https://lets-all-be-stupid-foreva.itch.io/circuit-artist-dem... . Feedback is appreciated!
139 points · Open discussion

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.