quaco.js
v1.0.0
Published
A lightweight modular Quantum Computing Simulator in JavaScript. Supports qubits, quantum gates, entanglement, circuits, algorithms, and visualization.
Maintainers
Readme
QuaCo.js
QuaCo.js is a modern, modular, and lightweight Quantum Computing Simulator built entirely in JavaScript.
It allows developers, students, and researchers to easily simulate qubits, quantum gates, entanglement, quantum circuits, and famous quantum algorithms like Deutsch-Jozsa and Grover's Search — right from the browser or Node.js environment.
Whether you're learning quantum mechanics, teaching quantum principles, or prototyping quantum programs, QuaCo.js provides a clean, simple, and extensible playground to explore the fascinating world of quantum computing — without needing expensive quantum hardware.
Features
- Qubits simulation with complex amplitudes
- Quantum Gates: X, Y, Z, H, CNOT, and more
- Quantum Registers for multi-qubit systems
- Quantum Circuits: Build and run full programs
- Quantum Algorithms:
- Deutsch-Jozsa Algorithm
- Grover’s Search Algorithm
- Measurement simulation (probabilistic collapse)
- Histogram Visualizer for output
- Node.js + Browser compatible
- Pure ES6 modules, no heavy dependencies
Installation
npm install quaco.js(or clone the repository for local development.)
Usage
1. Superposition Example
import { Simulator } from 'quaco.js';
import { QuantumGate } from 'quaco.js';
import { Visualizer } from 'quaco.js';
const sim = new Simulator(1);
sim.addGate(QuantumGate.hadamard(), 0);
const results = sim.run(1000);
Visualizer.showHistogram(results);2. Entanglement (Bell State) Example
import { Simulator } from 'quaco.js';
import { QuantumGate } from 'quaco.js';
import { Visualizer } from 'quaco.js';
const sim = new Simulator(2);
sim.addGate(QuantumGate.hadamard(), 0);
sim.addCNOT(0, 1);
const results = sim.run(1000);
Visualizer.showHistogram(results);3. Deutsch-Jozsa Algorithm Example
import { DeutschJozsa } from 'quaco.js';
const result = DeutschJozsa.run(3, 'balanced');
console.log("Result:", result); // 'balanced' or 'constant'4. Grover's Search Algorithm Example
import { Grover } from 'quaco.js';
const found = Grover.run(3, 5);
console.log("Found marked item:", found);Run Examples
npm run example:superposition
npm run example:entanglement
npm run example:deutschjozsa
npm run example:groverDocumentation
- src/Qubit.js — Single qubit state and operations
- src/QuantumRegister.js — Multi-qubit register
- src/QuantumGate.js — Common quantum gates
- src/Circuit.js — Circuit builder
- src/Simulator.js — High-level controller
- src/Algorithms/DeutschJozsa.js — Algorithm 1
- src/Algorithms/Grover.js — Algorithm 2
- src/Visualizer/Visualizer.js — Console-based histogram
Full detailed documentation coming soon!
Why QuaCo.js?
- Learn and teach quantum computing concepts easily
- No expensive hardware required
- Run in Node.js, browsers, or embedded systems
- Clean, modular architecture (extend easily)
- Great for educational platforms, experiments, and research
License
MIT License
(Free for personal, educational, commercial use.)
Contribution
Want to contribute?
Feel free to submit:
- New algorithms (QFT, Shor’s, Teleportation, etc.)
- Visualization upgrades
- Web GUI integration
Pull Requests are welcome!
Connect
Built with passion for quantum computing and open education.
