A C program for visualizing continuous time dynamical systems in a 3D space.
- 3D plotting
- customizable input equations
- mouse and keyboard controls for the 3D plot
- cglm
- freetype
- gmp
- GLEW
- GLFW3
- OpenGL
- lizard
- ds
nix build
make
./dynsys
w
,a
,s
,d
: camera angle-
,=
: zoomz
: toggle crossx
: toggle axisc
: clear/resetspacebar
: pause/resumem
,,
: speed decrease.
,/
: speed increasej
,l
: x translationi
,k
: y translationp
,;
: z translationv
,b
: dt
Note: at the moment the input equation must be provided in Polish notation:
Lorenz attractor:
dx: ( * 10 (- y x))
dy: ( - (* x (- 28 z)) y)
dz: ( - (* x y) (* (/ 8 3) z))
Rössler attractor:
dx: ( - 0 ( + y z))
dy: ( + x ( * (/ 1 5) y))
dz: ( + (/ 1 5) ( * z ( - x (/ 57 10))))
Contributions are welcome! Before submitting a pull request, please:
- Format your code with clang-format
- Test your code for memory leaks and undefined behavior with valgrind