Beauty of Physics

2024 - A work in progress, powered by cseed at the University of Washington

week 6 - demo week

I was able to get the E&M sim working on my own physics! Still quite a bit of finnickyness, both in the controls and interactions (particles can still go through each other), but I'm happy with the way the idea is progressing, and things should be able to move a little faster from here now that I've got the setup figured out. Added smoothie.js charts to the sim as well, which is getting a little closer to data-vis; though I think I'll stick with simplicity for now, and think about more complex graph visualizations later, when they are actually needed (for example, in fluid simulations).  

week 5 - 11/19

Decided it would be easiest to code up my own physics for now and abandon ammo.js- which basically means I'm restarting lots of the interaction side from scratch. This proved a little more complicated than I originally thought- a lot of the code I had to rewrite because of the way it was already "integrated" with ammo.js. However, this made things a lot less bulky, and I had a lot more personalization over how I wanted things.

week 4 - 11/12

ammo.js has been difficult to figure out, so I decided I'd look into coding up my own physics, since it seemed pretty involved trying to figure out setup on multiple devices. I'm looking at a variety of youtube videos and seeing how people code their own physics engines. Feeling a little lost with what kind of basis I'm going for, but I will just keep going with my options.

week 3 - 11/05

I have an environment setup & it worked a few days ago, but mainly working on some debugging with the setup and trying to understand documentation still. Switched from particle sims to basic e&m interactions so hopefully that'll be interesting as I progress. also looking into shaders/how to make it more visually appealing.

week 2 - 10/29

Got three.js running in my dev server (shoutout to INFO 340!) & started looking at the documentation. I have never been a huge fan of reading documentation from start to finish, though something always seems to push me to begin with that. Turns out, it was much more effective tweaking code given to me and learning the syntax that way instead.

week 1 - 10/22

Next Steps
1. get three.js running
2. how to represent one particle
3. interactivity with the ball/particle
4. balls interact with diff objects
rendering

fluids: separating by density

Future idea: gamifying (like angry birds)
Physics is intimidating, often before you even touch it for the first time. That's what everyone seems to say- there's this blanket around the word "physics" that tends to repulse people, that makes people nervous.

I want to dissolve this blanket and make physics more approachable. To make concepts more intuitive and easy to digest. To stun people with the beauty of physics, visually and mathematically.

Delivering the message that something is intuitive requires the interface doing so to be intuitive, and that's a big focus I have for this project: creating something that is simple and accessible. Ideally this would be an interactive web-app: something easily loadable that doesn't require download.

I've been doing a bit of preliminary research this past week, looking specifically into three.js as a main library for the design. I'm not as well-versed in the dev space than I hope to be, so figuring out how far I want to go seems like the logical second step.

Potential Resources
https://d3js.org/ for dynamic graph visualization- seems limited to 2D, which may work for my purposes?