This repository is the home for Team 1197 TorBots simulation projects, interactive physics tools, and supporting utilities.
The codebase is intended to stay lightweight and approachable for team members. Most tools will be written in Python and HTML, with browser-based interfaces for interactive experiments and Python services for simulation, modeling, and data processing.
- Build physics-based tools for robotics design and strategy.
- Prototype simulations that are easy to run and modify.
- Create browser-accessible interfaces for demos, teaching, and team workflows.
- Keep dependencies isolated in Docker so development stays reproducible.
.
├── Dockerfile
├── docker-compose.yml
├── docs/ # Documentation
├── requirements.txt
├── src/ # Reusable simulation library
├── tests/ # Automated tests
├── tools/ # Standalone analysis tools (Streamlit)
└── .gitignore
Build and start the development container:
docker compose up --buildThe container mounts this repository at /workspace, so changes made on your computer are immediately visible inside the container.
Open a shell inside the running container:
docker compose exec torkit bashRun Python:
docker compose exec torkit pythonRun the Streamlit shooter analysis tool:
docker compose exec torkit streamlit run app.py --server.address 0.0.0.0shooter_analysis.py supports two shooter workflows:
- Variable wheel speed with one optimized fixed hood angle.
- Fixed wheel speed with a computed hood angle range across target distances.
It also estimates burst RPM drop, burst energy loss, recovery time, and a momentum wheel size suggestion.
Stop the container:
docker compose downAdd Python packages to requirements.txt, then rebuild the container:
docker compose up --buildThe starting dependency set includes common scientific and web tooling for simulation work:
numpyscipymatplotlibpandasflaskpytest
- Keep generated files, caches, virtual environments, and local data out of git.
- Prefer small, focused tools that are easy for students to inspect and adapt.
- Add tests for reusable simulation logic as it grows.
- Use the shared TorBots UI palette in
docs/ui-palette.md; colors are defined insrc/constants.pyasPALETTE.