Basics

Introduction

Lucifer's Atoms is a physics-based construction game where players have to build and control objects to complete various challenges.

Everything in the game is made from cylinders, spheres, and flat sheets. Despite being simple elements, they can be combined to form more complex things.

Each level has its own rules for successful completion and can also specify restrictions on what is allowed to be built.

In addition to the single-player levels, there is a multiplayer mode, where players compete or co-operate with their creations. Players can also make and share their own levels.

Editing and playing

The game starts on the choose level screen. Click on a level to show a preview of it, then you can either click on Play or Design level.

After you've chosen a level to play, the game switches to the edit screen. This shows four views of the level (front, right, top, and free) and a panel of buttons down the left side of the screen. All the building is done from this screen.

Clicking on the green arrow button (or pressing Space) switches to the play screen, which runs the physics simulation and allows you to control your creation, if it has any motors. Press Esc from here to go back to the edit screen.

Definitions

Click Press and release the left mouse button.
Right click Press and release the right mouse button. On MacOS with a single-button mouse, this can be emulated by holding down the Alt/Option key while pressing and releasing the (left) mouse button.
Click + drag Press the left mouse button and hold it down while moving the mouse.
Shift + click Hold down the Shift key while pressing and releasing the left mouse button.

You will probably want to move and zoom the views on the edit screen while building your creations to get a better view of the bit you're working on. All four views keep looking at the same point and have the same zoom, so moving or zooming one updates them all. You can click and drag the view borders to resize them.

Input Alternative input Action
Control + click + drag Middle click + drag Move views
Control + right click + drag up/down Scroll wheel Zoom views
Control + Shift + click + drag Shift + middle click + drag Rotate free view
Control + Shift + right click + drag up/down Shift + scroll wheel Move free view forwards/backwards

Editing modes

The top group of buttons represent the editing modes – the one that's pressed is the current editing mode.

Mode Action Notes
Click Shift + click Right click Shift + right click
Add link (+ drag)
Create link
(+ drag)
Move object
Delete object * Links connect two nodes in a straight line. New links are created with the current material and radius.
Modify link(s) Select link Select multiple links ** The selected links' material and radius can be changed by editing the values.
Add ball (+ drag)
Create ball
(+ drag)
Move object
Delete object * New balls are created with the current material.
Modify ball(s) Select ball Select multiple balls ** The selected balls' material and radius can be changed by editing the values.
Add angle joint (+ drag)
Create joint
Delete joint See below for a description of joints.
Add hub joint
Add fixed joint
Add geared joint
Add geared angle joint
Add differential joint (+ drag, then click again)
Create differential joint
Add axle joint (+ drag)
Create axle joint
Add sheet (+ drag)
Create sheet
Delete sheet Sheets connect between three links forming a triangle. Sheets have the same material as their first link.
Add cylinder curve (+ drag)
Create curve
(+ drag)
Move curve control point
Delete curve * See designing levels.
Add torus curve
Add flat curve
Align curve edge (+ drag)
Align curve edge
Drag between two control points on the same curve to create a string of links bordering the edge of the curve. Drag between two curves' end points to align the first one with the second one. See designing levels.
Add target (+ drag)
Create target
(+ drag)
Move target
Delete target * See designing levels.
Add multiplayer start position (+ drag)
Create/move multiplayer start position
Delete multiplayer start position * See designing levels.
Add chase camera (+ drag)
Create/move camera
Delete camera * Chase cameras move to follow the tracked objects.
Add direction camera Direction cameras move to follow the tracked objects, but keep looking in the same direction.
Add static camera Static cameras don't move, but rotate to follow the tracked objects.
Add attached camera Attached cameras are fixed to the tracked objects.
Delete Delete object Select multiple objects **
Move (+ drag)
Move object
Select multiple objects **
Rotate (+ drag)
Rotate object
Select multiple objects ** The centre of rotation is the position of the object clicked on. The rotation axis is the direction of the view.
Scale (+ drag)
Scale object
Select multiple objects ** The centre of scaling is the position of the object clicked on.
Mirror (+ drag)
Mirror object
Select multiple objects ** The axis of reflection is defined by the position of the object clicked on and the direction dragged.
Toggle tracked Toggle objects tracked Select multiple objects ** When this mode is activated, the tracked objects are black and the untracked objects are white. The tracked objects are followed by the cameras.
Toggle anchored Toggle objects anchored Select multiple objects ** Anchored objects are fixed in place and can't move. See designing levels.
Length motor Select link Select multiple links ** See below for a description of motors.
Rotation motor
Thrust motor

The add joint, add curve, add camera, and motor buttons are combined into a single button each – pressing it shows a popup menu with the other buttons.

Editing multiple objects

Editing operations can be performed on multiple objects simultaneously, which can make things a lot quicker. You just need to select the objects you want to change, then do the operation as you would for a single object.

Input Action Modes
Click + drag in an empty space Select objects inside rectangle **
Shift + click + drag in an empty space Add objects inside rectangle to selection * **
Shift + right click + drag in an empty space Remove objects inside rectangle from selection * **
Shift + click on an object Toggle object selected **
Shift + right click on an object Remove object from selection **
Right click Clear selection **

Other editing functions

Undo Undo the previous editing operation.
Redo Redo the next editing operation in the undo history.
Snap position/length If pressed, the positions and lengths of editing operations are snapped to the grid.
Snap angle/scale If pressed, the angles and scales of editing operations are snapped. Angles are snapped to 11.25° increments and scales are snapped to integer values (…, ÷4, ÷3, ÷2, ×1, ×2, ×3, ×4, …).
Sheets transparent If pressed, display all sheets as transparent when editing. Useful to stop sheets getting in the way of other things you want to see.
Hide large objects If pressed, hide objects larger than the view. Useful to stop large objects from interfering with editing smaller objects.
Rules Rules Show the level rules, which can be edited when designing a level.
Input rules Input rules Edit the rules for the motor automated inputs.
Save Save the current creation or level.
Start Run the simulation.
Back Go back to the previous screen.
Menu Shows a popup menu that lets you start a network multiplayer game, change game options, and other useful things.

Materials

There is a choice of materials to build things from, each with different properties.

Material Mass Strength ÷ mass Elasticity Bounciness Friction Special
Metal
Wood
Rubber
Super
Ice
Plastic
Damp
Links act as dampers, absorbing motion.
Rocket
Links can be propelled with thrust motors.
Helium
Objects are lighter than air, so they float.

Joints

Joints can be created between adjacent links to restrict the movement between them in various ways.

Joint Description Rotation motor connection
Angle joint Angle joints keep a constant angle between the two links, but both the links are free to rotate.
Hub joint Hub joints keep a constant angle between the two links and the first link is fixed to the second so it can't rotate, but the second is free to rotate. Hub joints can't be used between links with an angle close to 180°. Because hub joints are asymmetrical, the creation order is significant (A→B ≠ B→A). Outer casing (first link)
Fixed joint Fixed joints keep a constant angle between the two links and both links are fixed to each other so they can't rotate. Fixed joints can't be used between links with an angle close to 180°. Outer casing
Geared joint Geared joints connect the rotations of the two links together, but do not restrict the angle between them. Inner shaft
Geared angle joint Geared angle joints connect the rotations of the two links together and keep a constant angle between them. Inner shaft
Differential joint Differential joints connect the rotations of the three links together, but do not restrict the angles between them. The rotation of the first link is transferred to the second and third links, which are given equal force, but not directly fixed to each other, like a car differential. Because differential joints are asymmetrical, the creation order is significant ((A→B→C = C→B→A) ≠ (A→C→B = B→C→A) ≠ (B→A→C = C→A→B)). Inner shaft
Axle joint Axle joints fix a link and ball together. Inner shaft

Each pair of adjacent links can have at most one joint between them.

Motors

Motors exert a force on a link – use them whenever you want to make something move.

For each of the motor types, there are 16 motor slots available for each link, labelled A-P. So a maximum of 16 motors of each type can be assigned to each link. The motor slot buttons are highlighted in red if any links have a motor on that slot.

To create a motor, select the link(s) you want to assign it to and the slot you want to use and then pick a virtual input (an axis or button). These virtual inputs are bound to physical inputs (keys and game controllers).

Half axes Full axes Buttons Automated Constant None




















The full axes are defined like the half axis in the direction of the darker arrow, with the opposite side being implicitly mirrored. The automated inputs are controlled by rules, which allows more complex inputs to be defined. The constant virtual input is like a button that's always pressed. To delete a motor, set the virtual input to none.

Length motors

A length motor acts like a hydraulic piston, creating a force that either pushes the links' nodes apart or pulls them together.

Parameter Description
Len 1 The length factor when the input is 0.
Len 2 The length factor when the input is at its maximum extent.
Speed The maximum speed, as a factor of the link's breaking force.

Rotation motors

A rotation motor acts like an electric motor, creating a rotation force. When a link has a rotation motor assigned to it, it is split into an outer casing and an inner shaft. Hub and fixed joints connect other links to the outer casing, while geared, differential, and axle joints connect to the inner shaft. To be useful, a link with a rotation motor must have at least one of each of these two types of joint connecting it to another object, so the force generated by the motor moves something. Otherwise, either the inner shaft or the outer casing will spin freely and very little force will be transmitted to the other.

Parameter Description
Force 1 The force to apply when the input is 0, as a factor of the link's breaking force. Positive for clockwise rotation of the inner shaft, negative for anticlockwise rotation.
Force 2 The force to apply when the input is at its maximum extent, as a factor of the link's breaking force. Positive for clockwise rotation of the inner shaft, negative for anticlockwise rotation.
Speed The maximum rotation speed, in revolutions per second. 0 to make the motor act as a brake and apply force in the direction opposite to the rotation.

Thrust motors

A thrust motor acts like a rocket, creating a force that pushes the link in the direction it's pointing. A link's direction is set when it's created – if a link is pointing the wrong way, you can delete and re-create it to point the other way. Thrust motors only work when assigned to links that are made from the rocket material.

Parameter Description
Force 1 The force to apply when the input is 0, as a factor of the link's breaking force.
Force 2 The force to apply when the input is at its maximum extent, as a factor of the link's breaking force.

Common motor parameters

Parameter Description
Ease A smoothing filter applied to a motor's input values. If an input instantaneously changes from 0 to its maximum extent, the ease value is the duration of this change, as seen by the motor, in seconds. 0 for no smoothing.

Cycles

As well as receiving inputs directly, motors can be set to operate cyclically.

No cycle The input is sent directly to the motor.
Sine The input controls a sine wave, which is sent to the motor.
Ramp The input controls a cyclical ramp function, which is sent to the motor.
Parameter Description
Frequency The input modulates the frequency of the cyclical function.
Amplitude The input modulates the amplitude of the cyclical function.
Period The time for one cycle, in seconds.
Offset The initial cycle position, between 0 and 1. 0 represents the start of the cycle and 1 represents the end.
A For the ramp cycle, the position of point A, between 0 and 1.
B For the ramp cycle, the position of point B, between A and 1.
C For the ramp cycle, the position of point C, between B and 1.

Input bindings

Although you can use whichever virtual inputs you like when creating motors, it's a good idea to consider the default virtual-to-physical input bindings, which try to cover common configurations of keys and game controllers.

These input bindings allow axes 1 and 6 to be used for the standard controls found in many racing games.

Game controller

Previous camera Next camera
Stop Start
Pause


Keyboard

Esc Pause
Stop Pause
` 1 2 - + Backspace
Chat Previous camera Next camera Previous camera Next camera
Tab
Caps Lock Enter
Shift Z X Shift
Control Space Control
Start

Keyboard shortcuts

Esc Back/Cancel
Enter Yes
Control + A Select all
Control + X Cut
Control + C Copy
Control + V Paste
Control + Z Undo
Control + Shift + Z Redo
Control + R Edit input rules
Control + Shift + R Show level rules
Control + S Save
Print Screen Take screenshot