Inspiration
Chem 105 and Phys 30 - beyond just knowing the math, we thought it would be helpful to have a visualization of what was happening
What it does
Simulates particle behaviour in an enclosed box, under different conditions set by the user - the user can change macroscopic conditions and see how it affects particles on the microscopic scale.
How we built it
Through blood, sweat, and tears. Redbull, GitHub pages, and three.js were also vitally useful.
Challenges we ran into
- Creating a 3D environment with functioning physics
- Creating a camera that the user can move and zoom to view the particles
- Accurately calculating the change in velocities (in both direction and magnitude) of two particles during a collision
- Accurately calculating the change in energy during collisions
- Allowing the user to dynamically change the conditions during the simulation
- Sleep Deprivation
Accomplishments that we're proud of
- Having a functioning 3D environment that the user can view easily using a camera they can control
- Accurately representing the physics of 3D elastic collisions
- Making it possible to change the simulation as it's running
- Allowing the user to run the simulation locally
What we learned
- We learned how to use three.js to create 3D environments and simulate physics using bounding boxes
- We learned more about the physics of elastic collisions
- We learned about the geometry of perspective projection
- We learned sleep is sometimes optional
What's next for Large Hackron Collider
- Accurately simulating chemical reactions (accounting for correct orientation of molecules as well)
- Giving the user the ability to change the volume/shape of the container
- Code efficiency (both time and memory) for scalability.
- The option to use sliders instead of textboxes for user input (making the interface more visual)
Log in or sign up for Devpost to join the conversation.