Loading
Speed
|
|||
Now Playing
Name | |
Number of bodies | |
Number of loops | |
Masses of bodies in loops | |
Charges of bodies in loops | |
Newton error | |
Number of integration points | |
Value of Action |
Share Current Solution
Gallery
Setup Workspace
Click "Setup Workspace" to save solutions to your disk, browse previously computed solutions and use the (much faster) CLI python solver.
Bodies and symmetries
A symmetry requires the system to be invariant under the action of:
  - A permutation of the bodies.
  - A possible reflection of vertical axis.
  - A rotation of angle \(2 \pi \alpha_p / \alpha_q\).
  - A possible time reversal.
  - A time lag of \(t_p / t_q\) of a total period.
  - A permutation of the bodies.
  - A possible reflection of vertical axis.
  - A rotation of angle \(2 \pi \alpha_p / \alpha_q\).
  - A possible time reversal.
  - A time lag of \(t_p / t_q\) of a total period.
Body permutation |
Reflection |
Rotation \(\alpha_p\) |
Rotation \(\alpha_q\) |
Time reversal |
Time lag \(t_p\) |
Time lag \(t_q\) |
Initial state target
Initial state randomization
Interactions
The interaction energy between two bodies scales with a certain power of the distance separating them. If this energy grows with distance, then the force between two bodies is attractive, else it is repulsive.
\(V_{i,j} \propto \pm q_i q_j \|\mathbf{x}_i - \mathbf{x}_j\|^n\)
In the case of gravity, this power is \(-1\) and the charges equal the masses.
Colors
Size
Body size | |
Trail width | |
Trail length |
Framerate options
Estimate average FPS of animation: | 30 |
Animations during search
Gallery related animations
Problem discretization
Optimizer
Convergence loop
Gradient tolerance |
Max iterations |
Max inner iterations |
Outer k |
Store outer Av |
Solver checks
Command Line Interface
Fast Fourier Transforms
Save settings
|
|
A cookie containing the configuration file can optionally be saved in your browser's profile data. It will then be automatically loaded on startup. | |
Help
    This website provides a user interface to choreo, a python package designed to compute periodic solutions to ordinary differential equations, applied to the newtonian n-body gravitational problem. In this context, "periodic" means that the search is restricted to motions that loop back after some time, and then repeat ad infinitum. Choreographies are such periodic motions giving their name to this package, where all bodies follow the same trajectory separated by a constant time lag.
    Check out thewhich has several pre-computed solutions ready to play, highlighting the range of possibilities. Even better, this web interface will allow you to compute your own solutions, no installation required!
 
Overview of the solving process
    The first step of the solution process is to analyse the symmetry constraints in order to:- Prune the redundant binary body-body interactions, so that computations can be re-used.
- Detect independent loops. The motion of every body in a loop can be deduced from that of a single representative.
- Reformulate the symmetries so that they are understood a priori through parametrization. The shapes of all independent loops are constrained accordingly.
 
Getting started
    The first step to compute your own periodic solution is to specify how many bodies will be interacting. Thetab lets you create new bodies, specify their masses, and arrange them in choreographic loops with pre-defined symmetry constraints. 
Expert options
    More complex symmetries can be specified under thetab. Don't hesitate to play around with the parameters of theinitialization, as well as all of theoptions. 
Going further
    For more thorough information about the meaning of the different settings and parameters, see the online help for the python package choreo.About
    Welcome to the web version of choreo, a python package designed to compute periodic solutions to ordinary differential equations, applied to the newtonian n-body gravitational problem.
 
Credits
    This website and the associated python package choreo were created by Gabriel Fougeron.Many thanks to the many people without whom this project could not have come that far, including:
- Dan Gries for his authorization to build upon his animation design.
- Gregory Minton for his choreo.2.3.js WebApp which inspired this work, and for his patience in answering my naive questions.
- The Pyodide team, and especially Hood Chatham and Gyeongjae Choi for their help in getting the in-browser version of choreo up and running.
- Beta testers for their valuable feedback.
Providing Feedback
    Please raise a Github issue to report bugs or suggest improvements. 
License
    This work is open source and includes substantial parts of other open-source projects. 
TOTO
This will be my "blog post" for SOME3Open choreo in a new tab Toto va à la plage avec ses amis.
Testing some stuff
Personnage droite parle
Personnage gauche parle
Personnage droite parle encore, vraiment beaucoup beaucoup. Tellement que ce qu'il dit prend plusieurs lignes. ON dirait qu'il va s'arrêter, mais en fait non, ça continue encore !
Personnage gauche répond, et parle vraiment beaucoup beaucoup. Tellement que ce qu'il dit prend plusieurs lignes. ON dirait qu'il va s'arrêter, mais en fait non, ça continue encore !