Open tools for exploring, teaching, and doing physics.
OpenPhysics builds approachable software for physics education, simulation, visualization, and laboratory work. Our projects span browser-based learning environments, Jupyter-native visualizations, and interfaces for experimental hardware.
| Project | What it does |
|---|---|
| Pyro | Write and run VPython in the browser with live 3D visualization. |
| vscene2d | Build VPython-style 2D physics scenes directly in Jupyter. |
| pycd48 | Control a CD48 coincidence counter from Python over USB serial. |
| tscd48 | Use a CD48 coincidence counter in the browser through the Web Serial API. |
| PASCO BLE Examples | Read PASCO Wireless sensors from web pages over Web Bluetooth. |
| Tektronix Oscilloscope | Capture waveforms from a Tektronix TBS1072B-EDU oscilloscope in the browser over WebUSB. |
| FeelTech Function Generator | Control a FeelTech FY3200S function generator from the browser over Web Serial. |
| pascoTS | The pasco-ble TypeScript library for PASCO Wireless sensors over Web Bluetooth. |
| relay | Reusable automation and CI/CD infrastructure for OpenPhysics projects. |
- Open by default — source code, documentation, and workflows are available for inspection, reuse, and improvement.
- Built for learning — tools should help students focus on physical ideas, not fight their software.
- Useful at the bench — educational software can still be dependable, testable, and practical for real experiments.
- Works where learners work — in the browser, in Python, and in Jupyter.
Explore a project above, try it in a class or lab, and share what you discover. Bug reports, documentation improvements, teaching examples, and code contributions are welcome. Each repository's README and contribution guide contain project-specific setup details.
