Inspiration
My passion in CS really revolves around using computers to better understand the world we live in. Modeling complex systems and displaying results that are calculated in milliseconds and much more intuitive is something I really wanted to learn more about in hackathon. I really wanted to build my own modeling application, from scratch, using as few third-party libraries as possible. I felt doing this would really be best in appreciating the mathematics and algorithms used in the calculations.
What it does
My application creates a vector field model and an object that will be placed into the vector field. The user can change the equations that describe the vectors in the field. Using all this information, including an initial position and velocity, the object is then "sent out" into the vector field and its path is displayed onto the screen.
How I built it
I built this application using the Java programming language. All calculations are done by code I wrote. The graphics were created using Java's FX library.
Challenges I ran into
Two of the big challenges I ran into were learning JavaFX from scratch and creating the algorithm to update the object's position and velocity given the force on the object and it's initial position and velocity.
Accomplishments that I'm proud of
I had to do a lot of API reading to piece together the various panes, nodes, and objects found in the GUI and after a lot of trial and error, I successfully created a grid, axes, an object that can move along a path, and trace the path itself. I am also very proud of coming up the algorithm to update the object's position and velocity given the object's initial position and velocity and the force on the object at that location (from the vector field).
What I learned
I've learned a lot about both the Java FX library and implementing dynamic FX applications and how modeling software works, especially in relation to vector fields and objects.
What's next for VectorFieldModel
Even though I implemented quite a bit of code for the GUI for this application, it is still far from finished. Creating a better UI will be the first "next-thing" for VectorFieldModel. Along with a UI update, I would really like to be able to add onto my modeling algorithm and make the vector field dynamic. I think modeling a dynamic field would create a unique challenge and allow for interesting models.
Log in or sign up for Devpost to join the conversation.