Translator Disclaimer
Open Access
22 June 2022 Visualizing quantum mechanics in an interactive simulation – Virtual Lab by Quantum Flytrap
Piotr Migdał, Klementyna Jankiewicz, Paweł Grabarz, Chiara Decaroli, Philippe Cochin
Author Affiliations +

Virtual Lab by Quantum Flytrap is a no-code online laboratory of an optical table, presenting quantum phenomena interactively and intuitively. It supports a real-time simulation of up to three entangled photons. Users can place typical optical elements (such as beam splitters, polarizers, Faraday rotators, and detectors) with a drag-and-drop graphical interface. Virtual Lab operates in two modes. The sandbox mode allows users to compose arbitrary setups. Quantum Game serves as an introduction to Virtual Lab features, approachable for users with no prior exposure to quantum mechanics. We introduce visual representation of entangled states and entanglement measures. It includes interactive visualizations of the ket notation and a heatmap-like visualization of quantum operators. These quantum visualizations can be applied to any discrete quantum system, including quantum circuits with qubits and spin chains. These tools are available as open-source TypeScript packages – Quantum Tensors and BraKetVue. Virtual Lab makes it possible to explore the nature of quantum physics (state evolution, entanglement, and measurement), to simulate quantum computing (e.g., the Deutsch-Jozsa algorithm), to use quantum cryptography (e.g., the Ekert protocol), to explore counterintuitive quantum phenomena (e.g., quantum teleportation and the Bell inequality violation), and to recreate historical experiments (e.g., the Michelson–Morley interferometer).



Quantum mechanics is commonly considered an arcane subject, counterintuitive not only to a general audience but even to its own creators. Niels Bohr claimed that “those who are not shocked when they first come across quantum theory cannot possibly have understood it.”1 Albert Einstein, perplexed by a curious correlation between particles, called it “a spooky action at a distance”2 – a property now called entanglement. Quantum mechanics sparks the imagination in popular culture3 and spirituality,4 but is rarely presented in a factual, digestible way. A handful of accessible books are available,59 but they still require knowledge of complex vector calculus.

Recently, motivations to learn quantum mechanics went beyond physics education and pure curiosity. Quantum technologies are gaining importance at a rapid pace,10 with estimates of more than $1 trillion value potential by the mid-2030s.11 Quantum cryptography is already in proof-of-concept use, although quantum computing will likely add business value in the next few years.12 Consequently, quantum literacy13 is becoming more important to keep up with technological possibilities and career opportunities. Therefore, providing practical tools for a wider audience is crucial.14 A similar process occurred for image processing with deep learning, which is now accessible to regular software engineers.15

Part of this need is being bridged by a rapidly growing family of quantum software frameworks,16,17 e.g., QuTiP,18 Qiskit by IBM,19 Penny Lane,20 and Strawberry Fields21 by Xanadu and Pulser22 by Pasqal. These packages have various balances of general quantum information, quantum circuits, quantum optimization, plotting capabilities, access to physical implementations of algorithms, and capabilities of running on quantum devices. These frameworks use the Python interface, thus allowing usage via the interactive environment of Jupyter Notebook. However, recent studies show that programs written in these frameworks are error-prone, with a high percentage of errors in the code being directly related to quantum mechanics.23,24

One way of introducing quantum mechanics is through interactive simulations and explorable explanations. For a recent introduction to this approach, see the survey article “Quantum Games and Interactive Tools for Quantum Technologies Outreach and Education” by Seskir et al.25 in which photons are presented as one of the most straightforward introductions to quantum mechanics. One of the earliest simulations is an interactive visualization of a one-dimensional wavefunction in a potential well26 from 2002. Newer ones include simulations of quantum computing circuits (Quirk27 and IBM Quantum Experience28) and an optical table, The Virtual Quantum Optics Laboratory (VQOL), developed at the University of Texas at Austin.29 The VQOL’s capabilities and interface focus on realistic laser physics, including the lasers’ wavelengths, intensities, and decoherence. Although it supports entangled pairs, it does not aim to simulate the delicate properties of a few photons, including interactions (e.g., CNOT gates), nondemolition measurements, or detection-dependent operations. VQOL is a complementary tool for simulating and explaining macroscopic systems of light.

Some educational, interactive simulations take the form of games.25 Preskill30 wrote that “perhaps kids who grow up playing quantum games will acquire a visceral understanding of quantum phenomena that our generation lacks”, and studies confirm that this type of open-ended experience promotes exploration.31 Children learn Newtonian physics by interacting with their environment32,33 rather than starting with differential calculus. We can provide a similar environment for quantum mechanics. Examples include a citizen science game Quantum Moves 234 and a visual quantum circuit puzzle Quantum Odyssey.35

Virtual Lab by Quantum Flytrap is a successor to Quantum Game with Photons (2014–2016),36 an open-source puzzle game with 34 levels and a sandbox. It had over 100k gameplays and was selected as the top pick in gamifying quantum theory in The Quantum Times.37 We apply a similar drag-and-drop interface with step-by-step dynamics. Quantum Game with Photons is restricted to a single photon. Adding more particles required creating a different simulation engine and both numerics and visualizations for entanglement. The graphical user interface of Virtual Lab is a complete redesign – a completely new project, with many ways to interact with and explore quantum experiments. Quantum Game with Photons was later developed as Quantum Game with Photons 2 at the Centre for Quantum Technologies, National University of Singapore.38

This paper is organized as follows. In Sec. 2, we present an overview of Virtual Lab. In Sec. 3, we show the core elements of the graphical user interface. Most of these components provide novel ways to interact with quantum states and can be readily used in other quantum interfaces. Specifically, we devise a new way to visualize arbitrary entangled states and another to show entanglement measures. In Sec. 4, we describe the physics of simulation, evolution, and measurement of quantum states. We spell out our assumptions and provide equations for the performed operations. In Sec. 5, we show a set of optical experiments that can be directly simulated in Virtual Lab. We aim to showcase our interface and simulation capabilities, as well as to provide a set of examples for students, educators, teachers, and lecturers. In Sec. 6, we provide examples of usage and indicators of popularity. In Sec. 7, we conclude the paper and explore possible directions for future development.



Virtual Lab by Quantum Flytrap (available in Ref. 39, see Fig. 1) is a free-to-use, browser-based laboratory with a real-time simulation of quantum states of photons, the elementary particles of light. Virtual Lab is an open-ended experience that can be used as an educational or research tool, a puzzle challenge, and a means for creative expression. For beginners, we aim to lower barriers to entry and serve as their first step to quantum literacy. For educators, Virtual Lab is an interactive and intuitive teaching aid. For physicists and quantum software engineers, it offers a way to efficiently investigate advanced quantum-information phenomena and prototype experiments.

Fig. 1

The main view of Virtual Lab: the board (center), the element toolbox (left), experiment controls (bottom), quantum state exploration tools (right), and options for saving and editing experiments (top).


Virtual Lab is aligned with Quantum Flytrap’s goals to bridge the gap between quantum computing and end-users by providing no-code quantum programming interfaces. We designed Virtual Lab to be a highly composable environment (such as LEGO bricks or Minecraft) yet powerful enough to simulate major wave optics and quantum information phenomena. “Leave computing to computers” served as our motto.

Virtual Lab is based on a numerics engine developed by Quantum Flytrap. Unlike prevalent qubit-only abstraction, we focus on concrete hardware implementations – our engine can be used to simulate all of the leading physical realizations including optically-trapped neutral atoms and ions, superconductors, and photons. Because we are now in the Noisy Intermediate Scale Quantum era30 of early-stage quantum devices, it is crucial to understand the capabilities of concrete physical implementations.

Classical simulations of quantum systems get exponentially more difficult with the number of particles. In our case, a single photon requires 1000 complex numbers (all combinations of its grid position, polarization, and direction). A three-photon simulation requires a billion dimensions. Consequently, Quantum Flytrap needed to develop a custom high-performance sparse array simulation in Rust, a low-level programming language, as none of the off-the-shelf solutions were suitable. The web interface uses a number of JavaScript technologies, including its dialect TypeScript and the web framework Vue.js.


Design & User Interface

We created Virtual Lab as a web-based app to make it accessible to a broad audience. Virtual Lab’s install-free nature allows users to instantly get started and facilitates sharing of user-created experiments. It can be used on desktop computers and mobile devices with modern browsers, regardless of the operating system.

The board is the main component of Virtual Lab. It is a grid-based canvas where users can place optical elements and watch the simulation. Elements can be placed with a drag-and-drop interface and rotated with a click. Users can run experiments in three modes, all simulating precisely the same physics. The high-intensity mode shows the whole photon path and displays absorption probabilities in real-time, as demonstrated for classical interferometers in Fig. 15. The wave mode displays amplitudes of photons and offers a way to explore quantum states. This mode can be accessed as a continuous simulation or as a way to examine quantum states at selected time steps; see Fig. 2. The detection mode shows a realistic experimental scenario in which we cannot “view” photon amplitudes, but we only receive a discrete signal when a photon arrives at a detector – as in quantum mechanics such measurement would affect the state. We use this mode to demonstrate the Bell inequality violation; see Ref. 17.

Fig. 2

An experiment in wave mode, which allows the user to explore every step of the simulation. (a) Amplitudes visualized as blinking wavepackets, see Secs. 3.2 and 3.5. (b) An entanglement graph, see Sec. 3.6. (c) Ket state, see Sec. 3.3.


Virtual Lab offers a way to save and share experimental setups. Saving experiments requires creating an account. Each experimental setup can be given a name, set to public or unlisted, and shared with a link. Viewing does not require setting up an account – this choice was made to facilitate easier access and distribution. For a list of publicly shared experiments, see Ref. 40.


Optical Elements

Elements in Virtual Lab are based on idealized versions of optical devices that can be used on an optical table in a laboratory. We provide visual icons as symbolic representations of these elements along with logical operators; see Fig. 3. Many elements have additional physical properties that can be modified in a tooltip that opens after a right-click; see Fig. 4.

Fig. 3

Elements available in Virtual Lab grouped by type and described from left to right. (a) Photon generators: a single-photon source, a Bell-pair generator, the three-photon GHZ state, and the three-photon W state. (b) Measurements: a detector, a photo-sensitive bomb, a rock, a neutral-density filter, a linear polarizer, and a nondemolition detector. (c) Nonabsorptive optical elements: a non-polarizing beamsplitter, a polarizing beamsplitter, a mirror, a corner cube, an optical circulator, a waveplate, a Faraday rotator, a sugar solution, a vacuum jar, and a glass slab. (d) Input and output: a switch, a randomized switch, an output variable, a correlator, and a goal. (e) Classical logic gates: AND, NAND, OR, NOR, and XOR; arithmetic operations: SUM, MIN, and MAX. (f) Quantum gates41,42 for a single qubit: identity, Pauli-X, Pauli-Y, Pauli-Z, Hadamard, phase shifts, and a square root of NOT. For two qubits: controlled-NOT (CNOT) and controlled-Z. (g) A text comment field.


Fig. 4

Configurable parameters for a nonpolarizing beamsplitter: rotation, reflectance, and reflection phase from one of its sides.


The Bell pair generator is based on an abstracted version of the spontaneous parametric down-conversion in a beta barium oxide crystal,43 hence the gem icon. We do not display the incident laser beam and focus only on the generated state. The detector is represented by a venus flytrap to add playfulness with a recognizable image of the piranha plant from the Mario game series. Similarly, we represent a fully-absorbing element as a sentient rock. A photo-sensitive bomb icon takes its inspiration from another popular game, Minesweeper. We have found that this approach makes Virtual Lab a more welcoming introduction to quantum physics and adds recognizability – to the point that we named the company after this plant. Each classical logic operation is depicted by a Venn diagram, while a quantum gate is given as a letter on its matrix visualization; see Sec. 3.4.

In optics, phase delays are typically modified by a slight change of optical path, which is challenging to present with a grid-based system. Therefore, we delay the phase with a glass slab (becauseit has a higher refraction index than air) and a vacuum chamber (because it has a lower refraction index than air). This representation serves as a further introduction to optical phenomena. Similarly, in our mirrors, both sides are reflective. Linear polarizers and phase plates are represented in the board plane, rather than perpendicularly, for visual clarity. At the same time, we made sure that all elements are expressed with physically-correct operators.


Photon Amplitude Visualization

We represent a photon as a wavepacket – oscillations within a Gaussian envelope; see Fig. 5. We draw an electric field, according to its polarization, in a pseudo-3D way. We show the phase by shifting the oscillation. The amplitude is shown as opacity, rather than more traditionally as the height of the electric field amplitude. We wanted to ensure that small amplitudes are visible and use an intuitive, visual language that is suitable for a general audience. In our visualizations of vectors and matrices, we use hue to indicate phase. We refrained from the same approach for photons approach because it would be confusing to use color where it could be confused with the wavelength.

Fig. 5

A single-photon amplitude is represented as oscillations within a Gaussian envelope. Note that horizontal polarization |H is parallel to the board, and vertical |V is perpendicular to the board.



Quantum State Visualization

Users can check the exact quantum state at a given simulation step in the typical form of kets.44 We provide a few improvements for readability and interactivity to create a clear and minimalistic visual data representation;45,46 see Fig. 6. We employ color-coding to match the formula with its description.4749 Users can choose between various representations of complex numbers – polar, polar using full rotations (τ=2π), Cartesian, and a color circle (amplitude as radius and phase as hue). Users can change between these representations according to their preferences or what is most suitable for a given phenomenon.

Fig. 6

A Bell state |Φ+ represented as a ket vector, with various choices of bases and complex number formatting. In this notation, |64H is a single-photon superposition component located at position (6,4), traveling right, with horizontal polarization; |64H44H is a two-photon state.


Similarly, we provide a way to dynamically change between bases – horizontal (|H, |V), diagonal (|D, |A), and circular (|L, |R). This feature can be used to set a basis that works best for a given phenomenon or to toggle between bases to explore the same phenomena in a few different ways. For example, the Faraday rotator, when expressed in |H and |V, acts as a rotation. But for the circular basis of |L and |R, it is just a phase change between polarizations. Likewise, for a mirror in the horizontal basis, due to changing the coordinate system, horizontal polarization gets a sign flip, which might look unremarkable. Yet, in the circular basis, we see that this sign flip swaps left with right circular polarization.

We distribute an extended version of this feature as an open-source library BraKetVue.50 This public version supports arbitrary discrete states (spin, qubits, n-energy states, and user-defined), sequences of states, and light and dark modes; see Fig. 7. Because BraKetVue is a JavaScript library, it can be used on websites, in interactive materials, and on web-based slides or be embedded in Jupyter Notebook. One of the examples is an explorable explanation of quantum logic gates for a single qubit.42

Fig. 7

A different example of the BraKetVue state visualizer, a single-qubit state propagating through a quantum circuit.



Operator Visualization

One typical way to visualize quantum operators involves showing them in a braket notation, or as any other matrix – displaying them as a table with numerical values. This approach is insufficient for a clear presentation.

In data visualization, arrays can be visualized with heatmaps – two-dimensional tile plots, with tile color representing the numerical value. For an interactive example, see Clustergrammer.51 However, typical plotting packages (such as Python Matplotlib or R ggplot2) do not support complex numbers.

We present a quantum operator matrix as an array of colored disks, with basis state labels and with further interaction options for label rearrangement and selection of basis; see Figs. 8 and 9. We follow a similar visualization scheme to a recursive pattern of Qubism,52,53 applied to operators (matrices) instead of wavefunctions (complex vectors). For a complex amplitude z=rexp(iϕ), we represent its length r as a disk radius and its phase ϕ as hue. The color scheme follows a domain coloring technique.54 Instead of the common choice to map r to brightness or opacity, we use disc radius for a few reasons. First, it is easier to read regardless of screen settings, even for low amplitudes. Second, the disk area πr2 is proportional to another vital property – probability. We show the amplitude and phase values on mouseover, with three applications in mind: as a chart legend, for access to the exact values, and to provide accessibility for people with color blindness (regardless of its type).

Fig. 8

BraKetVue visualizations of matrices representing quantum operators for a nonpolarizing beamsplitter. The interactive legend show r and ϕ of highlighted matrix entry. (a) The horizontal/vertical basis, direction-polarization tensor ordering. (b) The circular basis, polarization-direction tensor ordering.


Fig. 9

BraKetVue visualizations of matrices beyond Virtual Lab. (a) The controlled-NOT (CNOT) quantum gate. Note that, with the input column highlighted, we get a truth table; in this case, we see that |10|11. (b) The Pauli-Z operator for a spin-1/2 system.



Visualizing Entangled Amplitudes

To visualize entanglement, we invent a new method because we did not find any procedural way of visualizing arbitrary entangled states. Visually, we represent entanglement by coordinated blinking of the entangled particles; see Fig. 10. For two particles in state |Ψ12, we use the following procedure:

  • 1. We take a random one-particle state |χ2 from a uniform distribution.

  • 2. We get |ψ1=χ2|2|Ψ12 for the first particle.

  • 3. We get |ψ2=ψ1|1|Ψ12 for the second particle.

Fig. 10

Three snapshots of the amplitude blinking visualizing entanglement in the singlet state |Ψ. Note that, within an image, the states are orthogonal to each other.


In other words, we sample the state of the first particle |ψ1 if the other particle is randomly measured. Then we get the corresponding state of the second particle |ψ2. We get two states, |ψ1 and |ψ2, which display separately the same way. For an easy example, take Bell state |Ψ=(|01|10)/2, also known as the singlet state. In this state, two particles are always orthogonal. We check that

Eq. (1)


Eq. (2)


Eq. (3)

So indeed, up to a normalization for |Ψ, we get orthogonal states |ψ1 and |ψ2.

We can easily generalize this operation for n particles. First, we generate n1 random vectors |χ2,|χn. Taking a random unit vector for d-dimensional space is simple and does not require parameterization. We generate 2d random numbers with Gaussian distribution55 (for the real and imaginary parts of each coordinate) and then normalize the vector. We do not need to generate all random vectors (i.e., around 1000 per photon) – it suffices to generate a subset for which photon probabilities are nonzero. Then, we follow an iterative procedure:

Eq. (4)


Eq. (5)


Eq. (6)

Eq. (7)

In particular, for n=1 we recover exactly the initial state. The ordering of particles does influence the result. However, for an interactive, blinking visualization, we found that it is a nonissue.

An alternative approach that we considered is the Schmidt decomposition of an entangled state:

Eq. (8)

However, this method would cause some issues. First, we would need to perform a costly operation of singular value decomposition at each state. Second, if some λi are the same, this decomposition is not unique (e.g., for Bell pairs). Hence, it is not stable – extremely small changes in the state (including due to using floating-point numbers) will result in a noncontinuous change in the visualization. Third, the Schmidt decomposition is not easily generalizable to states of three particles. Although it is possible to hierarchically decompose it into two steps of 1 to (23) and then 2 to 3, this depends on the order of the photons.

Both approaches (ours and the Schmidt decomposition) can be applied simply to the visualization of any quantum state, including qubits, electrons, and other systems. In general, it is impossible to present entangled quantum states as probabilistic representations. Consequently, this coordinated blinking should be understood as a quantum correlation rather than a statistical mixture.


Entanglement Between Particles

Although the blinking of the waves is an indicator of entanglement, it might be hard to see the degree of entanglement between parts of the system. Because we did not find an existing way to represent the degree of entanglement between particles, we created our own. Working with pure states simplifies the task, as all measures of correlations are related to entanglement.

A quantum physics novice might expect to see values of entanglement between each particle pair, that is, for three particles A, B, and C, one would expect to have some measures of entanglement for A–B, B–C, and C–A. However, it is not possible. The only meaningful measure is the entanglement of a particle with the rest of the system: A–BC, B–AC, and C–AB. We use Rényi-2 entanglement entropy, due to its computational simplicity.

Eq. (9)


Next, we turn this measure into a digestible visualization; see Fig. 11. We place particles in a circle and represent them as dots. We draw a string connecting them and set the respective entanglement entropy (of a particle with the rest of the system) as the force constant. If all strings are equally stiff, their connecting points land in the middle. If only two particles are entangled with each other, then the connecting point lands between them. Next, we turn the strings into amoeba-blobs (force constants become connection widths), so we can clearly see which particles are entangled with each other. The same approach can be employed to visualize entanglement in any other system of quantum particles.

Fig. 11

An entanglement graph for three particles, a bipartite system of a photon and an entangled Bell pair. (a) The spring model, with an entanglement measure serving as the spring coefficients. The connecting point is the equilibrium. (b) The same graph visualized as a blob connecting entangled particles – each connection width is a function of the entanglement measure.



Multiverse Tree

We represent the evolution of quantum states as a tree rather than a sequence of steps; see Fig. 12. Each measurement event splits evolution into as many branches as there are outcomes with nonzero probability. The multiverse tree serves as a summary of all possible outcomes and as a way to explore the experiment. The user can click to select each timestep of each branch.

Fig. 12

A multiverse tree with a highlighted path to the state that we currently explore. Each absorption event is represented by an icon of the absorbing element, including polarizers and detectors. As the tree can be infinite for setup with loops, we show the percentage of all simulated paths, weighted by their probabilities.


There are several interpretations of quantum mechanics, including the indeterministic Copenhagen interpretation and the deterministic Everettian many-worlds interpretation.56 Even among physicists, the choice of interpretation is a matter of philosophical belief rather than a scientific hypothesis.57,58 The multiverse tree works the same regardless of the interpretation, just with a difference in what the nodes mean – separate probabilistic branching events or components of the global wavefunction.


Classical Randomness, Table of Measurements, and Correlators

In addition to quantum states, Virtual Lab supports classical states based on the initial setup and detection events. They are transferred through wires, with logic operations, and used for modifying elements on the board, measuring output correlations, and logging the results for arbitrary analysis; see Fig. 13. The data are downloadable as a comma-separated values (CSV) file. For a full example, see the Bell inequality violation in Fig. 17.

Fig. 13

Inputs connected through logic gates (AND and OR) to an element and an output variable. A gray wire carries 0 (false) and a highlighted 1 (true). An element connected to a value has two sets of adjustable parameters.


Input variables can be deterministic (so they work as switches) or randomized (so on each run, they are randomly set to on/off). Both have their application in setups – especially in quantum key distribution protocols and other correlation-based experiments. Because elements are affected by detection events, it is possible to create conditional setups, e.g., quantum teleportation.

All wires carry their signals instantly, without the speed-of-light delay, to simplify the interface.

Correlators measure correlation between ±1-valued variables s1,s2,sn, conditional on the control variables c1,c2,cm. For a practical example, see the Bell inequality in Fig. 17.


Quantum Game

The sandbox mode offers a way for the user to create arbitrary setups. However, the sandbox mode by design lacks any objectives and can be intimidating as it provides all functionalities at once. It is entirely up to the user to decide how to interact with Virtual Lab.

Based on the earlier success of Quantum Game with Photons, we created a similar experience; see Fig. 14. Rather than releasing a separate product, we made Quantum Game a part of Virtual Lab. Although our focus was to provide an enjoyable experience for beginners and advanced users alike, we wanted it to serve as a step-by-step tutorial on both quantum physics and the Virtual Lab interface. We aimed to make it clear that Quantum Game is an advanced simulation of quantum mechanics, rather than a visual gimmick loosely based on actual physics.

Fig. 14

A screen from Quantum Game after running a simulation shows level goals and their status.


For each level, the gameplay consists of creating a setup, running it many times, and collecting the results – a typical pattern for programming games,59 e.g., SpaceChem and Shenzhen I/O by Zachtronics. The probabilistic nature of quantum mechanics makes it challenging to design clear goals. We opted for setting detection percentage thresholds (e.g., a given detector needs to absorb a photon with the probability 25%). Although we show a finite number of experimental runs (e.g., 20), the win condition is based on probabilities in the infinite limit.



Virtual Lab simulates quantum systems using the pure state of a fixed number of particles, a discrete basis, grid-based positions, discrete-time evolution, and exploration of all measurement outcomes. We selected these constraints to create a fast, robust simulation of typical quantum experiments, without adding extra complexity (both numerical and related to the user experience). We found a sweet spot – suitable for a LEGO bricks-like interface, general enough to simulate major quantum information experiments, viable numerically, and directly applicable to simulating quantum devices.

The whole simulation is stored as a tree of classical and quantum states, explorable with the multiverse tree interface. Each node contains its probability, the quantum state, and the classical state. We open-sourced our first numeric engine written in TypeScript, Quantum Tensors.60 It serves as a reference for the simulation steps and is ready for use both in Virtual Lab and for arbitrary quantum systems with discrete states – e.g., quantum circuits, spin, and qudits. We put care into creating a semantic tensor structure61 for the clarity and safety of advanced operations on complex vectors and matrices.


State Representation

The state of a single photon is characterized by four components: position (along the x and y axes), direction, and polarization. A photon has two polarization states. Because we use grid mechanics, light travels along four cardinal directions, rather than at an arbitrary angle. Grid size is a parameter that can be adjusted according to needs, and we use the default of 13×10, which we find suitable for most applications. It gives rise to around 1000 dimensions per single particle.

Eq. (10)


Virtual Lab simulation supports primarily distinguishable particles. However, photons are indistinguishable bosons, but they can be made distinguishable by assigning them a wavelength. A nonentangled product state is represented as a tensor product of single-particle states:

Eq. (11)

We simulate indistinguishable photons (e.g., for the Hong–Ou–Mandel effect62) via symmetrization:

Eq. (12)


This approach is equivalent to the typical description of bosons with creation and annihilation operators for states with a fixed number of photons.53,63 However, from a numerical point of view, it is easier to work with vectors than polynomials. One significant drawback of our choice is the restriction to Fock states – the current framework does not support coherent or squeezed states.


Unitary Operations

In each step, we perform three operations: free propagation, measurement, and the action of unitary operation. The propagation step T involves shifting the photon’s position according to its direction:

Eq. (13)

Unitary single-photon operations (i.e., all passive optics) are described as

Eq. (14)

For an n-photon state, Un is a tensor power, e.g., U3=UUU. The nonsignaling principle from special relativity forbids instant interactions between spatially-separated particles, and thus the operator is decomposed as

Eq. (15)

where operator Ux,y corresponds to the element on the board. The operator U may change in time if it is connected to a classical wire.

We use a limited number of two-photon interactions. This choice is motivated by optical setups in which photon-photon interactions are challenging to implement. We apply the following operation:

Eq. (16)

where V21 is the tensor transpose of V12, i.e., the same operator but with swapped photon order. We ensure that V12 and V21 commute. In particular, for a CNOT operator, we encode qubits in polarization states and use top-down direction (| and |) for control and left-right direction (| and | for the target. As all interactions are local, both photons need to arrive at the CNOT element at the same time, that is, the operator is

Eq. (17)


Eq. (18)


Eq. (19)

Because P and P are projections on orthogonal spaces, CNOT12 commutes with CNOT21.



We allow measurements at any step, including destructive measurements (absorbing a photon) and nondemolition measurements64 (not absorbing a photon). In each measurement phase and for each photon, there are three exclusive outcomes:

  • The photon got measured and destroyed.

  • The photon got measured but not destroyed.

  • The photon did not get detected.

Note that, after a measurement event, the state remains a state with a fixed number of photons.

All measurements happen within the elements on the board. Destructive measurements happen when a photon hits a fully absorptive element (e.g., a rock, a detector, the side of certain elements), a partially absorptive element (e.g., a neutral density filter), or a polarization-dependent element (e.g., linear polarizer) or falls out of the board. Nondemolition measurements happen when a photon passes through a nondemolition detector or when none of the other detection events occur.

Destructive measurements are represented with a non-normalized (bra) vector, wiϕi|. For example, for a single direction |, these vectors for polarization are

  • Detector and rock: H| and V|.

  • Neutral-density filter: aH| and aV|, where a is the absorption rate.

  • Linear polarizer: cos(α)H|+sin(α)V|, where α is the polarizer rotation.

After a measurement of the m’th photon, the remaining state is

Eq. (20)

and has one less photon. The probability of the outcome is this state’s norm squared.

To deal with the general case of destructive and nondemolition measurements, we need to use a general scheme of positive operator-valued measures (POVMs). A general POVM requires a set of positive semidefinite matrices Mi that sum to identity.41 The resulting non-normalized state for three photons is

Eq. (21)

with its norm squared being the probability of the given outcome. Here, we understand M as an operator such that MM=M. In our simulation, we restrict ourselves to Mis that form a set of orthogonal, weighted projections:

Eq. (22)


Eq. (23)

PiPj=0for all  ij.
This simplifies calculating the new state as we do not need to take the square root of an operator, which is numerically costly and not uniquely defined. For scaled projective measurements, the root is wiPi, up to a unitary operator acting on its subspace, which we arbitrarily set to identity. Although this is a restriction, in the case of Virtual Lab, we did not find a practical case in which the assumption of Eq. (22) is an issue. On our board, some elements are absorptive, some perform the nondemolition measurement, and there is the null result of nondetection. The latter is represented as

Eq. (24)

All Mi are orthogonal (as they are related to spatially different tiles in the simulation) and weights wi1. Consequently, M is a positive semidefinite operator. With these assumptions, we can take its root as

Eq. (25)




To create a smooth experience, we need to have fast response times. As a rule of thumb, up to a 100 ms response time feels like a system reacts instantaneously, while up to a 1 s response time interupts the user’s flow of thoughts.6567 This sets the upper bound for the simulation time of up to three photons. For comparison, 60 frames per second required for a smooth video game experience68 corresponds to 17 ms. None of the off-the-shelf libraries (NumPy, SciPy, TensorFlow, and PyTorch) were able to support this kind of operation with these constraints, in addition to working in a browser.

Note that, even for a three-photons state with a typical (dense) representation, 109 complex numbers are required. A single unitary operator would require 1018. Yet, in typical experimental cases, we use only a few nonzero amplitudes – prompting us to use sparse vectors. This task goes far beyond typical interactive simulators of quantum circuits. For eight qubits, it is 28103 dimensions, which can be easily simulated with dense vector and matrix operations.

However, even with sparse vectors for three particles, an identity matrix would still have 109 nonzero elements (i.e., the ones on the diagonal). Hence, we need to apply operations to take advantage of the structure of the tensor, for speedup of operators acting only on a subset of dimensions.

The initial approaches are in an open-source TypeScript library Quantum Tensors. To improve performance even further, we developed a high-performance sparse array simulation in Rust, a low-level programming language. The typical timescale of simulating experiments is 30to150μs. To use the engine in the browser, we compiled Rust code to WebAssembly.69 The execution time measured in the browser is only 1.5× slower than that in native code.


Example Experiments

Virtual Lab lets users simulate the physics of quantum information, quantum computing, and quantum cryptography,70 as well as classical fields of wave optics (including polarization and interference) and electrodynamics.

We group the experiments by the number of photons involved. A fair share of the single-photon experiments is directly related to the behavior of classical light71 – even though a laser emits coherent states, rather than a series of single photons. Hence, we make a distinction between classical and quantum one-photon experiments. The list that we provide is not exhaustive due to the open-ended nature of the experiments. All of the following experiments can be simulated in Virtual Lab; see Ref. 72.

We suggest this list as a starting point of didactic material for courses, as an interactive lab used together or in place of physics experiments, or for a more scalable experience available to a larger number of participants.


One Photon, Classical

Interference is a wave phenomenon in which waves add by their amplitudes and amplify or cancel each other out depending on their relative shift. This behavior might be counterintuitive to people accustomed to geometric optics, in which light adds by its intensity.

In optics, interferometers are applied for sensitive measurements of distance. The famous experiment of Michelson and Morley73 in 1887 showed that light velocity is independent of the frame of reference, thus setting the footing for the special relativity theory. For an accessible introduction to special relativity, we suggest Unusually Special Relativity by Dragan.74 For an interactive version of the experiment, see Ref. 75.

The Mach–Zehnder interferometer76 is applied in precise measurements of tiny changes of the refraction index and for a wide range of quantum experiments. In the interactive version, the user can modify the relative delay between paths and see the result in real-time; see Fig. 15.

Fig. 15

Changing relative optical paths in the Mach–Zehnder interferometer. We use the high-intensity visualization mode.


The Sagnac interferometer,77,78 originally created to detect the luminiferous aether (as Michelson–Morley), is now used in ring laser gyroscopes and fiber optics gyroscopes.

Another set of phenomena involves the polarization of light. Understanding polarization is important for learning the nature of light and its application in numerous fields including photography, LCD displays, and telecommunications. The three polarizer paradox79 is an experiment in which two perpendicular polarizers block light, but inserting a third allows some of the light to pass. This represents a classical version of the quantum Zeno experiment.

Optical activity is a phenomenon in which chiral molecules (e.g., D-glucose, a naturally occurring enantiomer) rotate the polarization of light. Although in quantum optical laboratories this effect is not being applied to rotate polarization, it is being utilized to measure the concentration of sugar. The Faraday effect is a magneto-optic effect in which the polarization of light rotates in the presence of a magnetic field in a transparent material. Although this rotation may seem to be the same as the one caused by optical activity, it has different symmetries, that is, the rotation is opposite depending on if the light propagates in the same or opposite direction of the magnetic field. The effect is used in virtually all other optical elements that are not symmetric in time, such as optical circulators and optical diodes; see Ref. 80.


One Photon, Quantum

There is a common misunderstanding that at least two entangled particles are required to get distinctively quantum phenomena. Even some parts of quantum computing are possible without entanglement.81,82 First and foremost, in quantum mechanics, light is absorbed in discrete portions (or quanta), with energy ω each. Although at classical intensities of light we can measure the power of a light beam (or the energy of a pulse), for low intensities, the detection phenomenon has a discrete nature.

Even the detection of a single particle serves as a way to explore the fundamentals of quantum mechanics, such as the shot noise (randomness of detection events), Born’s rule (the probability of measurement is |ψ|2), and the nature of measurement. Shot noise can be seen on photographic film and digital sensors. Consumer smartphone cameras can be used to extract pure quantum randomness.83 We can simulate more advanced detection schemes, such as an optical implementation of optimal nonorthogonal state discrimination;84 see Ref. 85.

The Elitzur-Vaidman bomb tester86,87 is a combination of interference and the nature of measurement. In the classical physics world, it is a tautology that a photo-sensitive bomb cannot be detected with light without setting it off. In the quantum world, there is room for “interaction-free measurement” by observing the changes in the interference pattern. A bomb can be placed in one arm of the Mach–Zehnder interferometer. Some detector clicks testify that there is something blocking one path and therefore breaking the interference; see Fig. 16.88

Fig. 16

(a) The Elitzur–Vaidman bomb tester with a detection event that would not be possible if the bomb were not present. (b) Deutsch–Jozsa algorithm for a function {0,1}{0,1} with its values f(0) and f(1) implemented as phase shifts. A single detection event tells us whether the functiom is constant.


Quantum measurement affects the measured quantum systems, even when no absorption is involved. It is impossible to measure two noncommuting observables without affecting them. Discovering where a particle is located destroys the interference pattern, which is called quantum erasure;89 see Ref. 90. Within Virtual Lab it is possible not only to place a nondemolition measurement on one path but also to define its efficiency, thus showing a continuous transition between fully breaking quantum interference and not touching the system at all; see Ref. 91.

The Quantum Zeno effect92 is another phenomenon in which a nonmeasurement affects the result. The state evolution is inhibited completely by the limit of infinitely frequent projective measurements.

Due to the fundamental rules of quantum mechanics, it is impossible to copy an arbitrary quantum state, also known as the “no-cloning theorem.”93 This property is a direct consequence of the linearity of quantum mechanics and is necessary for forbidding superluminal communication. This is a substantial challenge for quantum computing that provides an opportunity to use quantum states for cryptography. The BB84 quantum key distribution protocol94 sends photons with random bits encoded quantum in different quantum bases – any eavesdropping would be both imperfect (no-cloning) and discoverable (as measurement affects the system); see Ref. 95.

The Deutsch-Jozsa algorithm9698 is an algorithm showing exponential speedup of a quantum algorithm over a classical one. It can be shown even within a single qubit that one needs a single measurement rather than two; see Fig. 16.

Photon polarization serves as a carrier of quantum information. This dimension alone encodes a qubit. In Virtual Lab, on top of optical operations, we provide abstract quantum gates. Last but not least, it is possible to encode two classical qubits within a single photon, using polarization for one dimension and direction for the other.99


Two Photons

It takes two particles to show one of the most striking quantum properties – entanglement.

Bell pairs are a set of four quantum states forming a basis for two fully-entangled qubits. In Virtual Lab, we provide an idealized nonlinear crystal (based on spontaneous parametric down-conversion), which generates Bell pairs. Bell pair detection, necessary for some protocols (such as quantum teleportation), can be performed with a CNOT gate that we provide. Experimental setups within Virtual Lab can be applied to transform Bell states, explore correlation patterns, and create cryptography setups such as the Ekert quantum key distribution protocol;100 see Ref. 101.

The Bell inequality102 is a correlation that should hold for any probabilistic correlations between subsystems. It was created to turn a philosophical debate on hidden variables into an experimentally testable hypothesis. Quantum mechanics violate it with a Bell pair and a set of measurements. In Virtual Lab, there is a correlator between results, which is set so that it can measure the Bell inequality in the Clauser–Horne–Shimony–Holt (CHSH) form.103 It can be used in two main ways – as an exact result and as a quantity based on the number of detections (involving shot noise); see Fig. 17.104

Fig. 17

CHSH Bell inequality violation simulated with Virtual Lab. We use the detection visualization mode.



Three Photons

In quantum teleportation,105 a quantum state is transferred to another particle, regardless of how far away it is. It requires three particles: one to be teleported and an entangled pair, with one particle being close to the source and the other in the target location. See Fig. 1 and the interactive version.106

In Virtual Lab, we simulate quantum teleportation with a photon source (in which photon polarization is set to an arbitrary state), with the nonlinear crystal generating a Bell pair. The Bell state measurement is implemented with a CNOT Gate, and two classical bits are sent to the remote location.

For two qubits, there is only one type of entanglement, that is, each entangled state can be turned into another by applying only local operations and classical communication (LOCC). For three and more qubits, this is no longer the case.107 There are two distinct states that cannot be changed locally – the W and Greenberger–Horne–Zeilinger (GHZ) states,108 which can be used to test nonlocality as109

Eq. (26)


Eq. (27)




University professors and educators use Virtual Lab as a teaching tool. It has been used during quantum information courses at the University of Oxford9 and Stanford University. We learned from one professor, whose experimental lab was closed during the COVID pandemic, that “even when it becomes possible to teach my class in person again, your website could help me scale to a larger class size than is possible when I require equipment for hands-on demonstrations.” Another educator told us that “we used Quantum Flytrap in labs over the past week and our students loved it! They really enjoyed the opportunity to play around with different optical elements. It also helped them visualize superposition, interference, wave-particle duality, and measurements.”

Virtual Lab has been used during several hackathons and other informal educational events and by individual users. As an easily embeddable tool, it has been used by external educational portals for quests and tutorials introducing quantum mechanics and quantum computing, including Qubit by Qubit, QPlayLearn,110 and Quantencomputer für Schüler_innen.111 We have 70 unique users per day, growing to 700 during events. There are over 450 user-created experiments, which can be shared. We have created a Discord channel to gather valuable feedback, cultivate a discussion, and develop a new quantum community.

Virtual Lab was shortlisted for D&AD Pencils, one of the most prominent awards in design,112 and was presented as a demo at a prestigious human-computer interaction conference, ACM CHI 2022.113 It is also listed in the Quantum Flagship outreach resources section. 114

Virtual Lab, as well as its predecessors, Quantum Game with Photons and Quantum Game with Photons 2, have been mentioned in numerous peer-reviewed publications on games in quantum mechanics,115117 teaching quantum literacy,110 general serious games,118,119 and preprints on computational complexity of puzzles120 and on the quantum workforce.121



Virtual Lab by Quantum Flytrap is a browser-based simulation of quantum mechanics of up to three photons. It provides ways of interacting with systems and setups in quantum optics.

We designed visualizations of vectors and matrices, the entanglement of arbitrary pure states, and measures of entanglement between particles. These tools are ready-to-use for arbitrary quantum systems, as we provide the open-source packages Quantum Tensors and BraKetVue.

Virtual Lab can be further developed by being extended to more photons and adding other degrees of freedom (e.g., Laguerre-Gaussian modes for angular optical momentum122), three spatial dimensions (for entertainment and interactive educational experiences with Virtual Reality), other carriers of quantum information (e.g., fermions such as electrons, electron states of ions and neutral atoms), and mixed states (represented by a density matrix, or measured via sampling).

Moreover, we can use the Quantum Flytrap simulation engine to create no-code user interfaces to interact with quantum devices. The real-time simulation allows for testing and debugging quantum software in a way that is similar to a typical programming integrated development system (IDE). We believe that these end-user tools are necessary to make quantum computing accessible to a broad technical workforce of software engineers, data scientists, and analysts.


We acknowledge the support of the Centre for Quantum Technologies, the National University of Singapore in 2019 – the project started there as Quantum Game with Photons 2, thanks to an invitation by Artur Ekert. We are particularly grateful to Evon Tan for all her administrative and organizational help and support. PM acknowledges the support of eNgage - III/2014 grant by the Foundation for Polish Science, for Quantum Game with Photons (2016), as well as fruitful discussions with its other creators, Patryk Hes and Michał Krupiński. Developing BraKetVue as a standalone, open-source matrix visualizer was supported by the Unitary Fund microgrant. A number of other people contributed to other than quantum aspects of Virtual Lab, including a procedural soundtrack by Paweł Janicki and software engineering support, especially from Jakub Strebeyko. The project benefited immensely from multiple discussions with people from the explorable explanations community, especially Andy Hall, Eryk Kopczyński, Dorota Celińska, Laur Nita, and Nicky Case. We were encouraged by public and private feedback from Scott Aaronson, Paul G. Kwiat, Monika Schleier-Smith, and James Wootton. We are grateful to Sarah Martin and Carrie Weidner for their valuable feedback and extensive editorial support. And last but not least, we would like to thank all users, players, students, and educators. It is you who continuously motivated us to keep developing Virtual Lab.



W. Heisenberg, Physics and Beyond, Allen & Unwin London(1971). Google Scholar


A. Einstein, M. Born and H. Born, The Born-Einstein Letters: Correspondence Between Albert Einstein and Max and Hedwig Born from 1916 to 1955, New York (1971). Google Scholar


D. Kaiser, How the Hippies Saved Physics: Science, Counterculture, and the Quantum Revival, Norton (2012). Google Scholar


V. Scarani, L. Chua and S. Y. Liu, Six Quantum Pieces: A First Course in Quantum Physics, World Scientific(2010). Google Scholar


L. Susskind and G. Hrabovsky, The Theoretical Minimum: What You Need to Know to Start Doing Physics, Basic Books, New York (2014). Google Scholar


A. Matuschak and M. Nielsen, “Quantum country,” (2019) Google Scholar


J. R. Wootton et al., “Teaching quantum computing with an interactive textbook,” in IEEE Int. Conf. Quantum Comput. and Eng. (QCE), 385 –391 (2021). Google Scholar


A. Ekert and T. Hosgood, “The online book for the Introduction to Quantum Information Science course,” (2022) Google Scholar


J.-F. Bobier et al., “What happens when ‘if’ turns to ‘when’ in quantum computing?,” (2021) Google Scholar


E. Hazan et al., “The next tech revolution: quantum computing,” (2020) Google Scholar


R. Waters, “Goldman Sachs predicts quantum computing 5 years away from use in markets,” (2021) Google Scholar


L. Nita et al., “The challenge and opportunities of quantum literacy for future education and transdisciplinary problem-solving,” Res. Sci. Technol. Educ., 1 –17 (2021). 0263-5143 Google Scholar


C. Hughes et al., “Assessing the needs of the quantum industry,” IEEE Trans. Educ., 1 –10 (2022). Google Scholar


P. Migdał, B. Olechno and B. Podgórski, “Level generation and style enhancement – deep learning for game development overview,” (2021). Google Scholar


M. Fingerhuth, T. Babej and P. Wittek, “Open source software in quantum computing,” PLOS ONE, 13 e0208561 (2018). POLNCL 1932-6203 Google Scholar


M. Fingerhuth, “Open-source quantum software projects,” (2022). Google Scholar


J. R. Johansson, P. D. Nation and F. Nori, “QuTiP: an open-source Python framework for the dynamics of open quantum systems,” Comput. Phys. Commun., 183 1760 –1772 (2012). CPHCBZ 0010-4655 Google Scholar


M. S. Anis et al., “Qiskit: an open-source framework for quantum computing,” (2021). Google Scholar


V. Bergholm et al., “PennyLane: automatic differentiation of hybrid quantum-classical computations,” (2020). Google Scholar


N. Killoran et al., “Strawberry fields: a software platform for photonic quantum computing,” Quantum, 3 129 (2019). Google Scholar


H. Silvério et al., “Pulser: an open-source package for the design of pulse sequences in programmable neutral-atom arrays,” Quantum, 6 629 (2022). Google Scholar


M. Paltenghi and M. Pradel, “Bugs in quantum computing platforms: an empirical study,” Proc. ACM Program. Lang., 6 (OOPSLA1), 1 –27 (2022). Google Scholar


J. Luo et al., “A comprehensive study of bug fixes in quantum programs,” (2022). Google Scholar


Z. C. Seskir et al., “Quantum games and interactive tools for quantum technologies outreach and education,” Opt. Eng., 61 (8), 081809 (2022). Google Scholar


P. Falstad, “Quantum mechanics: 1-dimensional particle states applet,” (2002) Google Scholar


C. Gidney, “Quirk,” (2019) Google Scholar


M. Bozzo-Rey and R. Loredo, “Introduction to the IBM Q experience and quantum computing,” in Proc. 28th Annu. Int. Conf. Comput. Sci. and Softw. Eng., CASCON ’18, 410 –412 (2018). Google Scholar


B. R. La Cour et al., “The virtual quantum optics laboratory,” (2021). Google Scholar


J. Preskill, “Quantum computing in the NISQ era and beyond,” Quantum, 2 79 (2018). Google Scholar


E. Bonawitz et al., “The double-edged sword of pedagogy: instruction limits spontaneous exploration and discovery,” Cognition, 120 322 –330 (2011). CGTNAU 0010-0277 Google Scholar


J. E. Fox, “Swinging: what young children begin to learn about physics during outdoor play,” J. Elementary Sci. Educ., 9 1 (1997). Google Scholar


S. L. Solis, K. N. Curtis and A. Hayes-Messinger, “Children’s exploration of physical phenomena during object play,” J. Res. Childhood Educ., 31 122 –140 (2017). Google Scholar


J. H. M. Jensen et al., “Crowdsourcing human common sense for quantum control,” Phys. Rev. Res., 3 013057 (2021). PRSTCR 1554-9178 Google Scholar


L. Nita et al., “Inclusive learning for quantum computing: supporting the aims of quantum literacy using the puzzle game quantum Odyssey,” (2021). Google Scholar


P. Migdał et al., “Quantum Game 2,” (2020) Google Scholar


M. Leifer, “Gamifying quantum theory,” (2017) Google Scholar


P. Migdał, P. Hes and M. Krupiński, “Quantum Game with Photons,” (2016) Google Scholar


P. Migdał et al., “Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


P. Migdał et al., “All user-created experiments – Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


M. A. Nielsen and I. L. Chuang, Quantum Computation and Quantum Information, Cambridge University Press, Cambridge; New York (2010). Google Scholar


C. Zendejas-Morales and P. Migdał, “Quantum logic gates for a single qubit, interactively,” (2021) Google Scholar


P. G. Kwiat et al., “New high-intensity source of polarization-entangled photon pairs,” Phys. Rev. Lett., 75 4337 –4341 (1995). PRLTAO 0031-9007 Google Scholar


P. A. M. Dirac, “A new notation for quantum mechanics,” Math. Proc. Cambridge Philos. Soc., 35 416 –418 (1939). MPCPCO 0305-0041 Google Scholar


W. C. Brinton, Graphic Presentation, Brinton Associates, New York City (1939). Google Scholar


E. R. Tufte, The Visual Display of Quantitative Information, Graphics Press, Cheshire, Connecticut (2001). Google Scholar


S. Riffle, “Understanding the Fourier transform,” (2011) Google Scholar


Euclid and O. Byrne, (1847). Google Scholar


N. Rougeux, “Byrne’s Euclid,” (2018). Google Scholar


K. Jankiewicz and P. Migdał, “BraKetVue – a Vue-based visualization of quantum states and operations,” (2022). Google Scholar


N. F. Fernandez et al., “Clustergrammer, a web-based heatmap visualization and analysis tool for high-dimensional biological data,” Sci. Data, 4 170151 (2017). Google Scholar


J. Rodriguez-Laguna et al., “Qubism: self-similar visualization of many-body wavefunctions,” New J. Phys., 14 053028 (2012). NJOPFM 1367-2630 Google Scholar


P. Migdał, “Symmetries and self-similarity of many-body wavefunctions,” (2014). Google Scholar


F. A. Farris, “Domain coloring and the argument principle,” PRIMUS, 27 827 –844 (2017). 1051-1970 Google Scholar


G. E. P. Box and M. E. Muller, “A note on the generation of random normal deviates,” Ann. Math. Stat., 29 610 –611 (1958). AASTAD 0003-4851 Google Scholar


W. H. Zurek, “Decoherence, einselection, and the quantum origins of the classical,” Rev. Mod. Phys., 75 715 –775 (2003). RMPHAT 0034-6861 Google Scholar


M. Schlosshauer, J. Kofler and A. Zeilinger, “A snapshot of foundational attitudes toward quantum mechanics,” Stud. Hist. Philos. Sci. B Stud. Hist. Philos. Modern Phys., 44 222 –230 (2013). Google Scholar


S. Sivasundaram and K. H. Nielsen, “Surveying the attitudes of physicists concerning foundational issues of quantum mechanics,” (2016). Google Scholar


A. A. Blanco and H. Engström, “Patterns in mainstream programming games,” Int. J. Serious Games, 7 97 –126 (2020). Google Scholar


P. Migdał and P. Cochin, “Quantum Tensors – an NPM package for sparse matrix operations for quantum information and computing,” (2021) Google Scholar


D. Chiang, A. M. Rush and B. Barak, “Named tensor notation,” (2021). Google Scholar


C. K. Hong, Z. Y. Ou and L. Mandel, “Measurement of subpicosecond time intervals between two photons by interference,” Phys. Rev. Lett., 59 2044 –2046 (1987). Google Scholar


P. Migdał et al., “Which multiphoton states are related via linear optics?,” Phys. Rev. A, 89 062329 (2014). Google Scholar


V. B. Braginsky, Y. I. Vorontsov and K. S. Thorne, “Quantum nondemolition measurements,” Science, 209 547 –557 (1980). SCIEAS 0036-8075 Google Scholar


J. Nielsen, Usability Engineering, Academic Press, Boston (1993). Google Scholar


S. K. Card, T. P. Moran and A. Newell, The Psychology of Human-Computer Interaction, Erlbaum, Mahwah, NJ (2008). Google Scholar


K. T. Claypool and M. Claypool, “On frame rate and player performance in first person shooter games,” Multimedia Syst., 13 3 –17 (2007). MUSYEW 1432-1882 Google Scholar


A. Haas et al., “Bringing the web up to speed with WebAssembly,” in Proc. 38th ACM SIGPLAN Conf. Programm. Language Design and Implement., PLDI, 185 –200 (2017). Google Scholar


P. Kok et al., “Review article: linear optical quantum computing,” Rev. Mod. Phys., 79 135 –174 (2007). RMPHAT 0034-6861 Google Scholar


M. H. Waseem and M. S. Anwar, Quantum Mechanics in the Single Photon Laboratory, IOP Publishing(2020). Google Scholar


P. Migdał et al., “Experiments – Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


A. A. Michelson and E. W. Morley, “On the relative motion of the Earth and the luminiferous ether,” Am. J. Sci., s3-34 333 –345 (1887). AJSCAP 0002-9599 Google Scholar


A. Dragan, Unusually Special Relativity, World Scientific(2021). Google Scholar


P. Migdał, K. Jankiewicz and P. Grabarz, “Michelson-Morley interferometer – Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


P. Migdał, K. Jankiewicz and P. Grabarz, “Mach-Zehnder interferometer – Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


G. Sagnac, “L’éther lumineux démontré par l’effet du vent relatif d’éther dans un interféromètre en rotation uniforme,” C R Acad. Sci., 157 708 –710 (1913). Google Scholar


P. Migdał, K. Jankiewicz and P. Grabarz, “Sagnac interferometer – Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


P. Migdał, K. Jankiewicz and P. Grabarz, “Three polarizer paradox – Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


P. Migdał, K. Jankiewicz and P. Grabarz, (2022) Google Scholar


S. Lloyd, “Quantum search without entanglement,” Phys. Rev. A, 61 010301 (1999). Google Scholar


B. P. Lanyon et al., “Experimental quantum computing without entanglement,” Phys. Rev. Lett., 101 200501 (2008). PRLTAO 0031-9007 Google Scholar


B. Sanguinetti et al., “Quantum random number generation on a mobile phone,” Phys. Rev. X, 4 031056 (2014). PRXHAE 2160-3308 Google Scholar


S. M. Barnett and S. Croke, “Quantum state discrimination,” (2008). Google Scholar


P. Migdał, K. Jankiewicz and P. Grabarz, “Nonorthogonal state discrimination – Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


A. C. Elitzur and L. Vaidman, “Quantum mechanical interaction-free measurements,” Found. Phys., 23 987 –997 (1993). FNDPA4 0015-9018 Google Scholar


P. Kwiat et al., “Experimental realization of interaction-free measurements,” Ann. New York Acad. Sci., 755 (1), 383 –393 (1995). ANYAA9 0077-8923 Google Scholar


P. Migdał, K. Jankiewicz and P. Grabarz, “Elitzur-Vaidman bomb tester – Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


R. Hillmer and P. Kwiat, “A do-it-yourself quantum eraser,” Sci. Am., 296 (5), 90 –95 (2007). SCAMAC 0036-8733 Google Scholar


P. Migdał, K. Jankiewicz and P. Grabarz, “Quantum eraser – Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


P. Migdał et al., “Measurement destorys interference – Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


P. Migdał, K. Jankiewicz and P. Grabarz, “Quantum Zeno effect – Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


W. K. Wootters and W. H. Zurek, “A single quantum cannot be cloned,” Nature, 299 802 –803 (1982). Google Scholar


C. H. Bennett and G. Brassard, “Quantum cryptography: public key distribution and coin tossing,” Theor. Comput. Sci., 560 7 –11 (2014). TCSCDI 0304-3975 Google Scholar


P. Migdał et al., “BB84 quantum key distribution protocol – Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


D. Deutsch and R. Jozsa, “Rapid solution of problems by quantum computation,” Proc. R. Soc. London A: Math. Phys. Sci., 439 553 –558 (1992). Google Scholar


R. Cleve et al., “Quantum algorithms revisited,” Proc. R. Soc. London A: Math. Phys. Eng. Sci., 454 339 –354 (1998). Google Scholar


P. Migdał et al., “Deutsch-Jozsa algorithm – Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


B.-G. Englert, C. Kurtsiefer and H. Weinfurter, “Universal unitary gate for single-photon 2-qubit states,” Phys. Rev. A, 63 032303 (2001). Google Scholar


A. K. Ekert, “Quantum cryptography and Bell’s theorem,,” Quantum Measurements in Optics, 413 –418 Springer US, Boston, MA (1992). Google Scholar


P. Migdał, K. Jankiewicz and P. Grabarz, “Ekert quantum key distribution protocol – Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


J. S. Bell, “On the Einstein Podolsky Rosen paradox,” Phys. Phys. Fiz., 1 195 –200 (1964). Google Scholar


J. F. Clauser et al., “Proposed experiment to test local hidden-variable theories,” Phys. Rev. Lett., 23 880 –884 (1969). PRLTAO 0031-9007 Google Scholar


P. Migdał, K. Jankiewicz and P. Grabarz, “CHSH Bell inequality violation – Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


C. H. Bennett et al., “Teleporting an unknown quantum state via dual classical and Einstein-Podolsky-Rosen channels,” Phys. Rev. Lett., 70 1895 –1899 (1993). PRLTAO 0031-9007 Google Scholar


P. Migdał, K. Jankiewicz and P. Grabarz, “Quantum teleportation – Virtual Lab by Quantum Flytrap,” (2022) Google Scholar


P. Migdał, J. Rodriguez-Laguna and M. Lewenstein, “Entanglement classes of permutation-symmetric qudit states: symmetric operations suffice,” Phys. Rev. A, 88 012335 (2013). Google Scholar


D. M. Greenberger, M. A. Horne, A. Zeilinger, “Going beyond Bell’s Theorem,” Bell’s Theorem, Quantum Theory and Conceptions of the Universe, 69 –72 Springer Netherlands, Dordrecht (1989). Google Scholar


J.-W. Pan et al., “Experimental test of quantum nonlocality in three-photon Greenberger-Horne-Zeilinger entanglement,” Nature, 403 515 –519 (2000). Google Scholar


C. Foti et al., “Quantum physics literacy aimed at K12 and the general public,” Universe, 7 86 (2021). Google Scholar


Z. Chaoui et al., “Quantecomputing für Schülerinnen und Schüler – Informatik und Gesellschaft,” (2022) Google Scholar


, “Shortlist | Start-up/established professional | D&AD,” (2021) Google Scholar


K. Jankiewicz, P. Migdal and P. Grabarz, “Virtual Lab by Quantum Flytrap: interactive simulation of quantum mechanics,” in CHI Conf. Human Factors in Comput. Syst. Extend. Abstracts, CHI EA ’22, 1 –4 (2022). Google Scholar


“QTEdu – Quantum Technology Education,” (2022) Google Scholar


B. Dorland et al., “Quantum physics vs. classical physics: introducing the basics with a virtual reality game,” Games and Learning Alliance, 383 –393 Springer International Publishing, Cham (2019). Google Scholar


Z. Ashktorab, J. D. Weisz and M. Ashoori, “Thinking too classically: research topics in human-quantum computer interaction,” in Proc. 2019 CHI Conf. Human Factors in Comput. Syst., CHI ’19, 1 –12 (2019). Google Scholar


J. D. Weisz, M. Ashoori and Z. Ashktorab, “Entanglion: a board game for teaching the principles of quantum computing,” in Proc. 2018 Annu. Symp. Comput.-Human Interaction in Play, CHI PLAY ’18, 523 –534 (2018). Google Scholar


A. Parakh, P. Chundi and M. Subramaniam, “An approach towards designing problem networks in serious games,” in IEEE Conf. Games (CoG), 1 –8 (2019). Google Scholar


A. Parakh et al., “A novel approach for embedding and traversing problems in serious games,” in Proc. 21st Annu. Conf. Inf. Technol. Educ., SIGITE ’20, 229 –235 (2020). Google Scholar


D. M. Costa, “Computational complexity of games and puzzles,” (2018). Google Scholar


M. Kaur and A. Venegas-Gomez, “Defining the quantum workforce landscape: a review of global quantum education initiatives,” Opt. Eng., 61 (8), 081806 (2022). Google Scholar


L. Allen, S. M. Barnett and M. J. Padgett, Optical Angular Momentum, CRC Press, S.l. (2003). Google Scholar


Piotr Migdał is a quantum physicist and a cofounder of Quantum Flytrap. He received his MSc degree from the University of Warsaw in 2011. He received his PhD in quantum optics theory in 2014, working in Maciej Lewenstein’s group at ICFO – The Institute of Photonic Sciences. Subsequently, he worked in data visualization and deep learning consulting. He authored popular introductions to data science and deep learning, which are available at

Klementyna Jankiewicz is a designer and a cofounder of Quantum Flytrap. She studied industrial design at the Academy of Fine Arts in Warsaw and the Bezalel Academy in Jerusalem. As a designer, she collaborated with the Hebrew University of Jerusalem, University of California Irvine, and the POLIN Museum. She was a visiting designer at the Centre for Quantum Technologies, National University of Singapore. She is a lecturer at the Creative Coding department at SWPS University.

Paweł Grabarz is a software developer passionate about physics simulations and real-time graphics. He is a contributor to the Amethyst engine and more recently to the Bevy engine.

Chiara Decaroli is a quantum physicist passionate about quantum education and outreach. She received her PhD in experimental quantum computing from ETH Zurich in August 2021 and is now the Outreach and Engagement Officer at the National Quantum Computing Centre based in Oxfordshire, UK.

Philippe Cochin is a software developer. He studied philosophy at Institut Catholique de Paris and attended Ecole Boulle to study jewelry design. In 2007, he cofounded Action Aide Asie, a humanitarian NGO.

© The Authors. Published by SPIE under a Creative Commons Attribution 4.0 International License. Distribution or reproduction of this work in whole or in part requires full attribution of the original publication, including its DOI.
Piotr Migdał, Klementyna Jankiewicz, Paweł Grabarz, Chiara Decaroli, and Philippe Cochin "Visualizing quantum mechanics in an interactive simulation – Virtual Lab by Quantum Flytrap," Optical Engineering 61(8), 081808 (22 June 2022).
Received: 23 February 2022; Accepted: 26 May 2022; Published: 22 June 2022



Quantum mechanics


Quantum computing

Computer simulations

Optical engineering


The physical origins of the uncertainty theorem
Proceedings of SPIE (October 01 2013)
Engineering parafermions in helical Luttinger liquids
Proceedings of SPIE (August 01 2021)
Two-particle quantum transmission
Proceedings of SPIE (October 15 2012)

Back to Top