π Try it here Β· π Read the announcement
Logisim.app is a fully featured browser-based port of classic Logisim: a widely used educational tool for designing and simulating digital logic circuits.
This project is a complete 1:1 port of the original Java application (based on version 2.7.2) running in the browser powered by WebAssembly. It uses CheerpJ (a complete browser runtime for Java apps) to execute the compiled JAR file directly in the browser. It also includes a lightweight JavaScript layer to provide browser-compatible file operations.
This allows Logisim.app to be used in any modern browsers and devices (including mobile!) without the need for installation or a Java runtime environment.
Since this project doesn't change any of Logisim's core features, you can refer the documentation built into the application and the original logisim documentation for usage details.
Logisim.app allows you to work with files from your local computer, or from a virtual filesystem in the browser (implemented on top of IndexedDB).
Whenever you try to open or save a file, you will see the following prompt:
- Local desktop refers to your computer's file system.
- Browser memory refers to the virtual file system in the browser.
Once a file has been opened, the application functions equivalently in both cases.
Caution
All files stored in the virtual filesystem in the browser are cleared if you delete site data for logisim.app.
Note
Due to browser limitations when using Firefox, Logisim.app cannot directly save to specific files, or store references to local files. So saving is replaced with downloading, and you will need to manually find local libraries when opening projects containing them.
This project contains:
- A copy of the original Logisim source code, minimally modified to sypport file handling in the browser.
- A lightweight HTML/CSS/JS frontend.
To build and run it, you'll need:
To run the repo locally, clone this repository and use npm to run a local dev server:
git clone https://github.com/De-Rossi-Consulting/logisim-legacy-wasm.git
cd logisim-legacy-wasm
npm install
npm run devIf everything is working, you should see something like the following:
> logisim-legacy-wasm@0.0.0 dev
> vite
VITE v6.2.5 ready in 671 ms
β Local: http://localhost:5173/
β Network: use --host to expose
β press h + enter to show help
If you want to modify the java files, you will need to build the .jar file.
To build the .jar file, run the create-jar.py script included in the original source code:
python3 /PATH_TO_REPO/logisim-legacy-wasm/logisim/scripts/create-jar.py -d /PATH_TO_REPO/logisim-legacy-wasm/publicNote
Make sure to replace PATH_TO_REPO with the absolute path to the repositry directory
This will build the .jar file and place it in /public, and you can reload the application to see your changes.
Pull requests and issue reports are welcome! Please use GitHub Issues to report any bugs or problems you encounter.
Logisim.app is licensed under the GPLv2, see LICENSE for details.
It is powered by CheerpJ, under the community licence.
This project also contains source code from the original Logisim, licensed under the GPLv2.
This project is maintained by DRS Software.
Website: https://drs.software
Contact: info@logisim.app

