JavaScript is needed to display the interactive content on this page. Consult the documentation for your browser to find out how to enable JavaScript.

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.

Zoom:

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:

type “about:config” into the address field

click the “I’ll be careful, I promise!” button

type “webgl.msaa-force” into the search field

double-click the line
showing the status of the “webgl.msaa-force” setting to change it from false to true.