An interactive educational tool for exploring quantum mechanics through the Stern-Gerlach experiment, based on McIntyre's approach.
This simulator provides an interactive learning experience that allows students to explore quantum mechanics concepts through hands-on experimentation with the Stern-Gerlach apparatus. The implementation follows the pedagogical approach outlined in McIntyre's "Quantum Mechanics: A Paradigms Approach" which uses the SG experiment as a foundational teaching tool.
The tool has two main modes:
- Simulation mode: A web-based interactive simulator that allows students to manipulate SG apparatus parameters and observe outcomes
- Real quantum mode: Integration with IBM Quantum systems to run actual quantum experiments (requires API key)
The enhanced simulator now supports multi-stage Stern-Gerlach experiments with the following capabilities:
- Multiple Apparatuses: Configure sequences of up to 10 Stern-Gerlach apparatuses with different magnetic field orientations
- Experiment Types:
- Simple: Single apparatus measurement
- Cascade: Particles pass through multiple apparatuses in sequence
- Disturbance: Measurement at each stage collapses the quantum state
- Recombination: Quantum paths can interfere when recombined
- Particle Tracking: Visualize individual particle paths through all stages
- Blocking/Recombination: Simulate blocking of specific paths and recombination of others
- Interactive 3D visualization of Stern-Gerlach apparatuses using Three.js
- Particle path visualization through multiple stages
- Real-time animation of beam splitting and particle movement
- Orbit controls for viewing from any angle
- Accurate quantum state evolution through multiple measurements
- Probability calculations based on quantum mechanics principles
- Support for different initial spin states (|+⟩, |-⟩, |+x⟩, |-x⟩)
- Open
src/index.htmlin a web browser - Select the operating mode:
- Simulation Mode: Instant results with theoretical predictions
- Real Quantum Mode: Execute on actual quantum hardware (requires IBM Quantum account)
- Configure the experiment:
- Select experiment type from the dropdown
- For single apparatus: Set the magnetic field angle
- For multiple apparatuses: Add apparatuses and set their angles
- Set the number of particles to simulate (1-10,000)
- Click "Run Experiment" to execute
-
Simple Experiment:
- Single Stern-Gerlach apparatus
- Measures probability of spin states
- Compares experimental results with theoretical predictions
-
Cascade Experiment:
- Multiple apparatuses in sequence
- Particles pass through all apparatuses
- Demonstrates quantum state evolution
-
Disturbance Experiment:
- Measurement at each stage affects subsequent stages
- Shows the effect of observation on quantum systems
- Demonstrates wave function collapse
-
Recombination Experiment:
- Paths are recombined after splitting
- Shows quantum interference effects
- Demonstrates the principle of superposition
The simulator can also be used programmatically:
// Import the required classes
import { SpinState, SGApparatus, SGExperimentSimulator } from './src/js/sg-simulator.js';
// Create initial state
const initialState = SpinState.plusState(); // |+⟩ state
// Create apparatus sequence
const apparatusSequence = [
new SGApparatus(0), // First apparatus at 0°
new SGApparatus(90), // Second apparatus at 90°
new SGApparatus(45) // Third apparatus at 45°
];
// Run simulation
const results = SGExperimentSimulator.simulate(
initialState,
apparatusSequence,
1000, // Number of particles
{ experimentType: 'cascade' }
);
// Access results
console.log('Stage results:', results.stageResults);
console.log('Particle paths:', results.particlePaths);
console.log('Final counts:', { plus: results.plusCount, minus: results.minusCount });src/
├── index.html # Main HTML file
├── css/
│ └── styles.css # Styling for the UI
├── js/
│ ├── main.js # Main application logic
│ ├── sg-simulator.js # Core simulation logic
│ ├── quantum-backend.js # Quantum computing backends
│ ├── visualization.js # 3D visualization components
│ └── utils.js # Utility functions
└── python/
└── quantum_backend.py # Python quantum backend (for future expansion)
tests/
├── js-tests.html # JavaScript unit tests
├── test-multistage.html # Multi-stage experiment tests
└── run_tests.py # Python test runner
- Three.js - 3D graphics library
- Chart.js - Data visualization
- Qiskit - Quantum computing framework (Python)
Run the test suite by opening the following files in a browser:
tests/js-tests.html- Unit tests for JavaScript componentstests/test-multistage.html- Tests for multi-stage experiments
This simulator helps students understand:
- Quantum state measurement and collapse
- The probabilistic nature of quantum mechanics
- Wave-particle duality
- The effect of measurement on quantum systems
- Quantum interference and superposition
- Non-classical correlations in quantum systems
Planned improvements include:
- More sophisticated particle blocking/recombination
- Additional quantum state initialization options
- Enhanced visualization with particle animations
- More experiment types (e.g., Bell's theorem demonstrations)
- Integration with more quantum computing platforms
- Mobile-responsive design