Chaotic Systems in VR
This site is a set of WebXR experiments to show phase portraits of Chaotic Systems in VR.
Experiments
Controllers
Click trigger on right hand controller to restart the simulation from a random point.
HUD
There is a fixed position HUD attached to every phase portrait. It shows:
- h: step size
- e: maximum error at ODE solver (RKF45) at current step size
- st: simulation time (equals h multiplied by N below)
- rt: real time (wall time) since simulation started
- N: number of simulation steps passed and also number of points currently shown on display
Display
- Red-Green-Blue lines shows X-Y-Z axes.
- The position of the camera and the length of XYZ axes lines are dynamically adjusted.
- Simulation restarts automatically after some seconds when what is to be shown is displayed.
Why this site ?
One of the courses I enjoyed the most at my university back in early 2000 was
"Non-Linear Circuits and Systems" and the course book was
Strogatz's Nonlinar Dynamics and Chaos. Although I have not used the things
I learned in that course day to day basis, I never forgot the basics. An important
thing was to visually represent the behavior of such systems, and I think it is a very good match
for VR, and that is why I created this site.
If you want to learn more about nonlinear systems and chaos...
If you are here, most probably you already know about the topic, but if not, I highly recommend either or both:
Technical Information
- This is a pure javascript frontend application with no backend.
- The VR 3D environment in frontend (web pages) is coded using A-Frame web framework.
- The points are rendered using a custom A-Frame component using BufferedGeometry and Points of three.js.
- Math is rendered using MathJax outputting SVG (because that can be displayed by the browser in VR headset as well).
- Runge-Kutta-Fehlberg (RKF45) ODE solver (custom implementation) is used.
- This app is hosted at Netlify and tested on Oculus Quest.
- I use Glitch during development, and export it to Github and when merged to master this is deployed to Netlify.
Contact
Please send an email to: info at metebalci.com