Scotty

Scotty is a quantum computing framework for Java and Scala developers. It comes with a quantum computer simulator and tools for exploring superpositions and circuits.

Top Features

Flexible Structure

All quantum components can be used separately or in unison.

Powerful Simulator

Scotty comes with a quantum circuit simulator for up to 29 qubits.

Quantum Circuits

Build quantum circuits with custom and composite gates.

State Tools

Explore qubit superpositions and collapsed classical states.

Quantum Experiments

Get statistical data from multiple trials of the same experiment.

Qubits on Steroids

Define flexible quantum registers with labeled qubits.

Show Me the Code!

Here's a fully working example of a quantum teleportation algorithm implemented with Scotty:

def entangle(q1: Int, q2: Int) = Circuit(H(q1), CNOT(q1, q2))

val msg = Qubit(Complex(0.8), Complex(0.6), "message")
val here = Qubit.zero("here")
val there = Qubit.zero("there")

val register = QubitRegister(msg, here, there)

val circuit = entangle(1, 2)
  .combine(CNOT(0, 1), H(0))
  .combine(CNOT(1, 2), Controlled(0, Z(2)))
  .withRegister(register)

implicit val sim = QuantumSimulator()

assert(
  QubitProbabilityReader(register, sim.run(circuit))
    .read("there")
    .fold(false)(_.probabilityOfOne ~= msg.probabilityOfOne))