JSCircuit is a lightweight, web-based circuit editor designed to generate netlists for QuCat simulations. It runs entirely in the browser, offering a modern alternative to desktop-based editors.
Get started right away with JSCircuit
The project was built to solve two key challenges in the quantum circuit simulation workflow:
-
Accessibility & Portability: Many researchers and students work in Jupyter Notebooks hosted on JupyterHubs or HPC clusters. JSCircuit provides a zero-installation editor that can be embedded directly into these environments, or run on any device with a modern browser.
-
Extensibility: Built with a modular Hexagonal Architecture, JSCircuit makes it easy for developers to add custom circuit elements, create new visual renderers, and implement custom commands.
- Zero Installation: Runs instantly in any modern web browser.
- QuCat Compatible: Generates netlist files ready for QuCat simulations.
- Embeddable: Designed to work within Jupyter Notebooks and web applications.
- Dependency-Free: Built with native ES6 JavaScript, requiring no heavy frameworks.
- Extensible: Professional architecture allowing easy addition of new components.
To run the project locally for development:
-
Clone the repository:
git clone https://github.com/qucat/jscircuit.git cd jscircuit -
Install dependencies:
npm install
-
Build and Serve:
npm run serve
This will bundle the application and start a local server at
http://127.0.0.1:8080.
- Extension Guide: Learn how to add custom elements.
- API Reference: Detailed code documentation.
npm run docs:serveThis project builds upon the original QuCat GUI developed by Mario Gely, which provided the foundational concepts for circuit visualization and interaction as a reference to develop this application.
We acknowledge the support of the TU Delft Digital Competence Center in advancing this project.
Technische Universiteit Delft hereby disclaims all copyright interest in the program "JSCircuit" written by the Author(s).
— Prof. Paulien Herder, Dean of the faculty of Applied Sciences at TU Delft
