Library / SDK
logisim-evolution/logisim-evolution avatar
logisim-evolution/logisim-evolution

Logisim-evolution: a Java logic simulator that grew into something its README still undersells

Digital logic design tool and simulator

7,744 stars1,033 forksJavaGPL-3.0

At a glance

What is it?
Free, open source and cross platform, with VHDL components, a TCL console and hardware board support. The documentation, however, is split between the README, a docs directory and the issue tracker.
Who is it for?
Logisim-evolution is at its best when you already know what a flip-flop is and want to watch one work, and the version line is genuinely active, with 5.0.0 landing on 2026-09-12 after 4.1.0 in February and 4.0.0 in September 2025.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 3 days ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 11, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A circuit designer that also simulates, with a chronogram for the timing

The README describes the project as educational software for designing and simulating digital logic circuits, free, open source and cross platform. The feature list is longer than that one line suggests. Beyond the circuit designer and the simulation itself, it lists a chronogram for watching signals evolve over time, electronic board integration so a schematic can be simulated on real hardware, VHDL components for specifying behaviour in a hardware description language, a TCL and TK console for interfacing between circuit and user, and a large component library covering LEDs, TTLs, switches and SoCs.

Custom libraries can be loaded automatically at startup, which is the feature that turns a teaching toy into something usable for coursework. Translations exist for multiple languages. The repository is Java, licensed GPL-3.0, at 7,634 stars and 1,012 forks, with 114 open issues and a last push on 2026-09-21.

The tree shows a Gradle build with `build.gradle.kts`, a `snap/` directory for the Snap package, `boards_model/` for hardware definitions, `docs/` for the documentation the README keeps linking out to, and `checkstyle-suppressions.xml` alongside a pre-commit configuration, which is what a project looks like once it has had serious review attention.

Two ways to install that disagree about Java

The Requirements section states that the project is a Java application that runs on any operating system supporting the Java runtime, and that it requires Java 21 or newer. The Download section then says something different about the packaged builds: the platform specific packages include the Java runtime and do not require it to be installed separately.

Both are accurate, and the resolution is which artifact you pick. The portable JAR, named `logisim-evolution-<version>-all.jar`, needs a Java runtime present on the machine. Everything else, the Debian package, the RPM, the Snap, the Windows MSI for Intel and ARM, and the macOS DMG for Apple Silicon and Intel, ships its own runtime. A reader who installs the Snap on a distribution with no Java gets a working application; a reader who grabs the JAR on that same machine gets nothing until Java is installed.

The architecture coverage is broad for a hobby-grade tool. There are separate installers for Windows on Intel and on ARM, and for macOS on both Apple Silicon and Intel, with the Intel build noted as also running on Apple processors through translation. That is more platform coverage than most classroom tools bother with, and it is a reasonable signal that the project is used well beyond the classroom it targets.

The blank window workaround tells you what kind of bugs remain

The Troubleshooting section documents one specific problem in detail: with some non-reparenting window managers, the window can appear blank even though the controls still respond, caused by an interaction between Java AWT and the window manager.

bash
env _JAVA_AWT_WM_NONREPARENTING=1 java -jar logisim-evolution-<version>-all.jar

The README recommends launching the JAR once with that environment variable and, if it works, setting the same variable in the session or launcher normally used to start the application. Issue 1235 is cited for background and for configurations that are known to work.

This is a well-handled bug report for a desktop Java application, and it also says something about the ceiling. AWT windowing on unusual Linux desktops remains a rough edge that a native toolkit would not have, and users on those desktops will find this project through its issue tracker rather than through a settings screen. The same goes for the rest of the surface area: the README covers install and first launch, and everything past that lives in `docs/` and in the wiki-style issue conversations.

Accessibility guidance that talks about Markdown, not circuits

The README has an accessibility notes section with a quick setup table. Read closely and the guidance is about reading the project's documentation rather than using the application. It says that if you use a screen reader, the pages in `docs/` are plain Markdown and generally read well in linear order. It recommends increasing operating system scaling or Java UI scaling for larger text, enabling high contrast mode in the operating system, and relying on menus and in-app shortcuts for keyboard-only use.

None of that is false, and the scaling and high contrast advice applies to any Java application. But the application itself is a canvas: components placed in two dimensions, wires drawn between pins, and values shown on small labels. The README makes no claim about navigating that canvas with a screen reader, and no claim about it being possible. A reader who needs to author circuits with assistive technology should establish whether that works before planning a course around this tool.

The same section points to the screenshot gallery as the visual reference, which is an honest statement of where the visual documentation lives: `docs/pics.md`, with three thumbnails in the README linking to larger images.

What the release notes say that the feature list does not

The three most recent releases are more informative about direction than the README feature bullets are. Version 4.0.0, published 2025-09-07, updated VHDL, created a Verilog generator for the RAM component with byte enables, added VHDL and Verilog for the RAM component with line enables, fixed a shift register bug in the classic appearance, and added automatic custom library loading at startup. Version 4.1.0, published 2026-02-15, increased the number of components that can appear in custom circuit appearances and fixed several synchronisation issues between the simulation tree and the propagator along with an INOUT port problem in TTL74245.

Version 5.0.0, published 2026-09-12, improved the visual representation of the pull resistor component, added an anti-aliasing preference for interface elements, and re-enabled static analysis in the GitHub Actions workflow.

Read together, those notes describe a project investing in hardware description languages and in simulation correctness rather than in new component counts. The classic appearance shift register fix and the propagator synchronisation work are the kind of change that only matters to someone who has already hit the bug, which is a fair sign of who the active users are. The changelog at the repository root is where the fuller history lives.

Getting a first circuit built in six steps

The README's getting started sequence is aimed at someone who has never opened the tool, and it is short enough to follow without prior knowledge. Start with a new project, place two input components and one AND gate, add a probe or lamp as the output, wire inputs through the gate to the output, toggle the inputs to watch the logic respond, and save.

Two advice lines come after it. Click a component and read its properties panel, which is where behaviour that is not obvious lives. And use the undo command rather than redoing work from scratch, which is advice that matters more in a graphical editor than in a text one.

The vocabulary table is deliberately concrete: a component is a building block placed on the canvas, a wire is the path that carries a zero or a one, a signal is the value travelling on that wire, a subcircuit is a reusable group of components you define, and a library is a collection of components you can add to a project. For a tool whose audience includes people meeting digital logic for the first time, spending space on those five words is the right call, and it is also a reminder that everything beyond them, timing analysis, HDL components, board simulation, is self-taught from the properties panels and the documentation directory.

Editorial conclusion

Logisim-evolution is at its best when you already know what a flip-flop is and want to watch one work, and the version line is genuinely active, with 5.0.0 landing on 2026-09-12 after 4.1.0 in February and 4.0.0 in September 2025. The parts worth knowing before you install: the platform packages bundle their own Java runtime while the portable JAR needs Java 21 or newer, and the accessibility guidance in the README is about the Markdown documentation rather than the circuit canvas, which is a graphical grid with no accessibility claims made for it. Start with the JAR and a two-input AND gate, read the component properties panel when something does not behave, and consult docs/developers.md and the change log before contributing.

Frequently asked questions

What is Logisim-evolution?

It is educational software for designing and simulating digital logic circuits, written in Java and licensed GPL-3.0. Beyond the circuit designer and simulator it includes a chronogram for signal timing, VHDL components, a TCL console, hardware board integration, and libraries that can load automatically at startup.

Is Logisim-evolution free?

Yes, it is free and open source under the GPL-3.0 license. The packaged builds for Windows, macOS and Linux, plus the portable JAR, are all published on the project's releases page without charge.

How to use Logisim-evolution?

The README gives a six step first circuit: create a new project, place two inputs and one AND gate, add a probe or lamp, wire them together, toggle the inputs, and save. When a component does not behave as expected, click it and read its properties panel, and use undo to back out of a mistake.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. logisim-evolution/logisim-evolution on GitHub
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/logisim-evolution-logisim-evolution.svg)](https://hysenlabs.com/projects/logisim-evolution-logisim-evolution)