Sorry, it appears that your browser does not support WebGL, which is needed to display the interactive content on this page.
This simulation lets you explore how simple objects behave in the world of Dichronauts. Click and drag blocks to move them without changing their orientation. To rotate a block, hold down the SHIFT key while dragging it. To zoom in or out, use the slider control.Drag blocks with one finger to move them without changing their orientation. To rotate a block, first touch it with one finger then swipe an arc with a second finger. You can zoom in and out with the slider control, or by a pinching gesture in an empty part of the view. You can also drag the tiled ground to reposition it — and all the blocks will move with it — but it can’t be rotated.
More details about the simulation are given below. The geometry of the Dichronauts space is described here.
User interaction: When you select a block, the particular face you choose determines a plane that controls the way you manipulate the block. Any movement of the block will be confined to this plane, and any rotation will keep the chosen face aligned with it. [With the ramps, selecting the top, sloping face will give a control plane parallel to the opposite face; this makes it easier to drag the ramps across the ground.] When you’re moving a block, the plane is indicated by two perpendicular guide lines. When you’re rotating a block, a guide circle or hyperbola is drawn in the plane, along with a line segment from the centre of rotation to the curve. Tip: Try to avoid using control planes that are almost edge-on to the viewing direction, because they can generate large, possibly unintended movements of the block from very small shifts in the control point.
If you hit the Freeze motion button, any moving objects will stop where they are, and if you lift things off the ground they won’t fall back until you hit the button again. If you simply freeze the scene and then restart it, objects retain any velocities they had, but if you select an object while it’s frozen it will restart from rest in whatever position and orientation you give it (even if you don’t move it).
Blocks that are in motion (even slightly) are drawn brighter than those at rest. If you select a block, or start dragging the ground, while any of the blocks are moving, they will be frozen until you finish interacting with the scene.
Physics: All the blocks and ramps are treated as imperfectly elastic, so objects lose energy when they collide. Air resistance is taken to be negligible. The top surfaces of the ramps are treated as frictionless, but other surface-to-surface contact, between blocks or between blocks and the ground, is subject to friction. To understand the behaviour of blocks on the ramps, read this analysis.
Forces between the blocks are modelled as arising when their volumes overlap slightly, without changing shape; this is simpler than calculating the elaborate shapes of blocks squashed against each other, but naturally it looks a bit strange. This strangeness is sometimes compounded by the fact that the blocks might only push into each others’ surfaces by a very small “proper distance” as measured in this geometry, but it will look like a much larger Euclidean distance.
When blocks topple over in such a way that the distances they span grow exponentially, once the process crosses an arbitrary cut-off the block is declared to have “disintegrated” and vanishes from the scene. A more realistic approach would have it gouge a furrow as it breaks up and falls to pieces in a complicated fashion.
Cosmetic issues: Blocks are only shown casting shadows on the ground, not on each other, to keep things simple.
If the lines and edges in the image appear jagged, your browser might be disabling anti-aliasing of WebGL images by default, and you might want to consider turning this feature on, if it’s available and it doesn’t slow things down too much.
With the Firefox browser, you can do this as follows:
Acknowledgements: This page uses the three.js JavaScript library.
![]() |
![]() |