You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This project is dual-licensed. The public release is under GPLv3. Non-GPLv3 licenses are available upon request.
Copyright 2021-2025: Nicholas Overacker & Miho Kobayashi.
No code contributed by third-party developers will be covered by non-GPLv3 licensed releases.
At present (May 21, 2025), Nicholas and Miho are the sole developers, and all code can be included under non-GPLv3 license.
If third-party developers contribute code, then the non-GPLv3 code and public code will diverge. The GPLv3 code will be full-featured, and non-GPLv3 code may lack future functionality.
Above all else, above the following points, code in main must work.
Javascript errors or warnings must not be tolerated on the live page.
All functions must be in strict mode.
Live code must always clear JSHint with no errors or warnings.
Live code must always pass the testbench with no errors.
Software entropy must not increase.
Feature Requests (High Priority!!)
Most Feasible
Cell library support
Resistive pull-up support
Euler graph verification (suggest fixes for mismatches)
Export production rules
Allow users to configure layers
Real-time collaboration ("multiplayer")
Support for multiple drive strengths
Although resistive pull-up might be easy to implement by using directed edges, going beyond that might require substantial changes to the underlying hypergraph model. I will see what I can do.
"Game mode"
This has been at the back of my mind for a long time. It's going to happen someday.
Feature Wishlist
Allow users to save designs, and use their outputs as inputs to other designs to produce complex, modular circuitry.
Generate Magic files from design for a given technology.
Sequenced output for state-dependent circuits like DFFs. UPDATE: Instead, produce test vectors for external tools.
Allow user to define custom color scheme.
Allow user to selectively hide layers (to verify connections).
Allow custom command mappings.
Allow custom terminal labels.
Student/Teacher modes with generating/grading homework, practice problems, etc.
Draw CMOS circuit schematic corresponding to the painted topology.
Logical effort calculations (allow user to set constants)
Export netlist for use in electronics design software.
HDL generation.Implemented 2025/5/7
Share small diagrams by URL arguments and QR codes.Implemented 2023/2/8
Interactive tutorial.Implemented 2023/2/4
Replace pullup/pulldown alert popups with less obtrusive warnings.Implemented 2023/1/29
Allow users to select where to insert rows and columns.Implemented 2023/1/29
Show which layers are set in highlighted cell.Implemented 2023/1/29
Show at least one path from rail voltage to output for each input.Implemented 2021/12/11
Warn user when pulling up with NMOS or pulling down with PMOS.Implemented 2021/12/10
Arbitrary number of I/O.Implemented 2020/12/10
Colorblind-friendly mode.Implemented 2021/12/8
Mobile interface.Implemented 2021/12/6
Record user input sequence in debug mode for the testbench.Implemented 2021/12/4
HTML button interface for those who prefer not to use a keyboard.Implemented 2021/12/2
Arbitrary width/height.Implemented 2021/11/28
More efficient data structure for the grid.Implemented 2021/11/25