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 Go and Quest.
- I use Glitch during development, and export it to Github and when merged to master this is deployed to Netlify.
Privacy Notice
This site uses Google Analytics with IP Anonymization without Remarketing and Advertising Reporting Features.
If you do not wish your data to be collected by Google Analytics,
you can use Google Analytics Opt-out Browser Add-on.
Contact
Please send an email to: info at metebalci.com