Skip to content

Classic logisim ported to the browser. Design and simulate digital circuits online. Powered by WebAssembly and CheerpJ

License

Notifications You must be signed in to change notification settings

De-Rossi-Consulting/logisim.app

Repository files navigation

Logisim.app

Classic logisim ported to the browser, powered by WebAssembly

πŸ‘‰ Try it here Β· πŸ“– Read the announcement


About

Logisim.app is a fully featured browser-based port of classic Logisim: a widely used educational tool for designing and simulating digital logic circuits.

Screenshot of Logisim.app

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.

Using Logisim.app

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.

Working with Files

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:

File open dialog

  • 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.

Building and Running Logisim.app

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.

Dependencies

To build and run it, you'll need:

Running the application locally

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 dev

If 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.

Building 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/public

Note

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.

Contributing

Pull requests and issue reports are welcome! Please use GitHub Issues to report any bugs or problems you encounter.

Licence

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.

Contact

This project is maintained by DRS Software.

Website: https://drs.software

Contact: info@logisim.app

About

Classic logisim ported to the browser. Design and simulate digital circuits online. Powered by WebAssembly and CheerpJ

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published