# Newton 2.0
User's Guide

## Table of contents

- Introduction
- Bodies
  - General Properties
  - Advanced Properties
- Joints
  - Distance Joint
  - Pivot Joint
  - Piston Joint
  - Spring Joint
- Preview
- Gravity
- Solver
- Actions History
- Loading and Saving Settings
- Separating Shapes
- Applying Result
- Keyboard Shortcuts
- Troubleshooting

## Introduction

Newton is a 2D physics simulator for Adobe After Effects CS5 or later.

Newton interprets 2D layers of the current composition as rigid bodies in a physical world. These bodies can collide with each other, slide, bounce, and react to gravity. Bodies can also be connected to each other using joints. Newton can deal with various types of bodies: some types allow bodies to be animated in After Effects while reacting to physical forces, others are entirely controlled by the solver. Newton also provides a simple, clean, and easy to use interface, offering fast OpenGL preview and intuitive controls. Once simulation is completed, Newton export the animation to After Effects using standard keyframes.

Newton Interface

## Bodies

Newton transforms composition 2D layers (except audio, guide, null and video-disabled layers) into physical objects called bodies. These bodies can bounce, slide, and collide with each other. To change the properties of a body, you must first select it in the body list or directly in the preview. One of the most important body properties is the body type.

### General Properties

#### Type

Newton supports the following types of body:

- static : a non-moving body.
- kinematic : a body animated in After Effects with keyframes or expression. Its motion path is not altered by the physics until the end of the animation (in the case of keyframe animation), where the body becomes dynamic.
- dynamic : a body fully controlled by the solver (default type).
- dormant : a body not influenced by gravity until another body collides with it, and makes it dynamic.
- AEmatic : a body animated in After Effects with keyframes or expression, but also influenced by the physics (hybrid type between kinematic and dynamic types).
- dead : a body ignored by the solver (in terms of collision response).

#### Density

This parameter is used to determine the mass of a non-static body. High-density body doesn't fall down faster than low-density body (they fall at the same speed), however when collision occurs, the difference of density is easily noticeable.

#### Friction

This parameter is used to make bodies slide along each other. A value of 0 turns the friction off, and a value of 1 makes the friction strong.

#### Bounciness

This parameter is used to make bodies bounce. A value of 0 means no bounciness (e.g., a ball falling on the ground will not bounce), a value of 1 means maximum bounciness (e.g., a ball falling on the ground will bounce indefinitely).

#### Color

This parameter sets the body color used in the simulation preview.

#### Mesh Precision

This parameter is used when a body is formed by a shape with round corners. Default value is 2. Higher value increases precision but performance may suffer. For complex shapes, it is highly recommended to keep this value as low as possible.

#### Linear Velocity

This parameter sets the linear velocity of a body. Force is applied to the center of mass. You can also set the velocity directly in the preview by using the Velocity tool (P).

Note:

- When you move the velocity handle, you can see the body's trajectory.

#### Angular Velocity

This parameter sets the angular velocity of a body. Force is applied to the center of mass.

#### Linear Damping

This parameter is used to reduce the linear velocity of a body.

#### Angular Damping

This parameter is used to reduce the angular velocity of a body.

#### AEmatic Damping

This parameter is used only by AEmatic bodies. It corresponds to the damping coefficient of the joint connecting the motion path set in AE (desired path) and the motion path determined by the solver.

#### AEmatic Tension

This parameter is used only by AEmatic bodies. It corresponds to the tension of the joint connecting the AE motion path and the motion path determined by the solver.

Note:

- You can move the anchor of the AEmatic connection using the Anchor tool (J).

### Advanced Properties

#### Collision Group, Collide With

You can assign a collision group to a body (five groups are available), and specify which groups the body should collide with. By default every body belongs to the same group and can collide with every other groups.

#### Fixed Rotation

This parameter is used to prevent body rotation.

#### Gravity Scale

This parameter allows you to set a custom gravity per body. A value of 0 turns gravity off for the body.

Note that negative values are allowed.

#### Use Convex Hull

This parameter allows you to approximate the geometry of a complex body, using the convex hull of the shape vertices. In some situations, when working with text for instance, this option can highly increase performances while producing realistic simulation.

#### Magnetism Type

This parameter allows you to transform a body into a magnet that can either attract or repulse other bodies.

#### Magnet Intensity

This parameter specifies the intensity of magnetism.

#### Magnet Distance

This parameter determines the maximum distance at which the magnet is active.

#### Accept Magnetism

This parameter specifies whether the body is sensitive to magnetism of other bodies.

## Joints

Newton allows you to create joints between bodies. A joint is used to add a constraint between two bodies.

To add a new joint, select two bodies and use one of the Add Joint buttons above the joint list. To remove a joint, select it in the joint list (or press W when one of the connected bodies is selected), and click on the Remove Joint button (or press Alt W).

To modify joint properties, you must first select the joint, and then change its properties.

Notes:

- Use the Anchor Tool (J) to reposition joints anchor.
- When multiple bodies are selected, multiple joints are created at once (see keyboard shortcuts section for details). The order of selection is important when creating multiple joints. Use the Shift key while clicking on the bodies to create an ordered selection (e.g. for creating a chain of bodies).
- You can customize the appearance of joints (colors and stroke width) in the Preferences dialog.

### Distance Joint

A distance joint implies that the distance between two points (joint anchors) on two bodies must be constant. This is not always true since you can give elasticity to the joint, and obtain a soft distance joint.

#### Tension

This parameter allows you to give elasticity to the joint. This can be used for instance to create a soft body (by connecting several small bodies with soft distance joints).

#### Damping

This parameter is used to reduce or soften the amount of motion.

#### Collide Connected

This parameter specifies whether the two connected bodies should collide with each other.

### Pivot Joint

A pivot joint forces two bodies to share a common anchor point or pivot point. The joint angle is the relative rotation between the two bodies and can be restricted to a specific range.

#### Enable Limit

This parameter is used to force the joint angle to remain between a lower and upper bound.

#### Lower Angle

This parameter specifies the lower bound of the joint angle.

#### Upper Angle

This parameter specifies the upper bound of the joint angle.

#### Enable Motor

This parameters determines whether the joint motor is enabled.

#### Motor Speed

This parameters allows you to specify the joint speed.

#### Max Motor Torque

This parameters allows you to specify the maximum motor torque allowed.

#### Collide Connected

This parameter specifies whether the two connected bodies should collide with each other.

### Piston Joint

A piston joint allows for relative translation of two bodies along a specified axis. Its parameters are similar to the pivot joint parameters, except that rotation is replaced with translation.

#### Enable Limit

This parameter is used to force the joint translation to remain between a lower and upper bound.

#### Lower Translation

This parameter specifies the lower bound of the joint translation.

#### Upper Translation

This parameter specifies the upper bound of the joint translation.

#### Enable Motor

This parameters determines whether the joint motor is enabled.

#### Motor Speed

This parameters allows you to specify the joint speed.

#### Max Motor Force

This parameters allows you to specify the maximum motor force allowed.

#### Collide Connected

This parameter specifies whether the two connected bodies should collide with each other.

### Spring Joint

A spring joint constrains two bodies to move like they were connected by a spring.

#### Springiness

This parameter controls the strength of the spring.

#### Damping

This parameter allows you to reduce the amplitude of oscillations.

#### Desired Length

This parameter specifies the length of the spring when it is inactive.

## Preview

Newton provides an OpenGL view to preview the result of the simulation. The view handles mouse and keyboard events. For instance, you can zoom and pan in the view, or select and move bodies in the scene. A contextual menu also provides some common operations (accessible from both the preview and the body list).

#### Tool Buttons

There are five tool buttons above the preview, each one being used for a specific operation :

- selection : to select bodies and move them.
- hand : to translate or pan the view.
- anchor : to modify joint or AEmatic anchors.
- gravity : to set gravity directly in the preview.
- velocity : to set bodies velocity directly in the preview.

Tool Buttons
Notes

- You must select at least one joint (or an AEmatic body) before using the Anchor tool.
- You must select at least one body before using the Velocity tool.
- When the Velocity tool is selected, holding down Alt when you click on a body allows you to select it.

#### Zoom

You can zoom in and out the preview by using either the zoom slider, the mouse wheel, or the dedicated buttons. The Best Fit Zoom button allows you to automatically scale the scene to fit the view.

Zoom

#### Background Color

By default the preview background color is equal to the current background color of the composition. You can change it by using the color picker next to the zoom slider.

Background Color

#### Preview Options

The following visualization options are available in the View Options popup menu:

- Shapes: displays all shapes
- Mesh: displays internal shapes representation (Newton uses the poly2tri library to triangulate non-convex shapes)
- Bounding Box: displays axis aligned bounding box
- Local Axes: displays local X and Y axes, in red and green respectively
- Joints: displays all joints
- Comp Bounds: displays a thin frame that indicates the bounds of the composition

Preview Options

#### Simulation Commands

To start the simulation, click on the Play button (shortcut key: 0). The other available commands allow you to restart (shortcut key: Enter (numpad) or Home), step one frame (shortcut key: 1 or PageDown) and loop the simulation from 0 to current time (shortcut key: 2).

Simulation Commands

#### Scene Snapshots

The Take Scene Snapshot button above the preview allows you to save temporarily the current scene settings. To restore a Scene Snapshot, double-click on it. You can delete it by using either the context menu of the snapshots list (right click > Delete), or the delete/backspace key. This feature is useful for creating multiple versions of the same scene without having to export separated settings file for each one.

Scene Snapshots

#### Context Menu

A context menu regrouping some common operations is available by right-clicking in the preview. This context menu is also attached to the body list.

Context Menu

## Gravity

Gravity is a force acting on all bodies. You can set its magnitude and direction using the text fields, the gravity view or the Gravity tool (G). You can animate it either by capturing mouse movement, or using the Inherit From checkbox that allows you to select a composition layer.

Gravity

#### Magnitude

This parameter specifies the magnitude of the gravity vector.

#### Direction

This parameter specifies the direction of the gravity vector. When changing the gravity in the gravity view or with the Gravity tool, hold the Shift key to snap the vector to the nearest axis.

#### Inherit From

Use this option if you want the gravity to inherit its value from the position of a layer. For instance, position [0,10] represents the default gravity which has magnitude 10 and direction 90°.

#### Capture, Apply

When Capture is active, every mouse movement in the gravity view is recorded. By clicking on the Apply button, the recorded values are assigned to a new null layer that is automatically selected in the popup menu.

Note:

- Starting dragging the mouse in the gravity view, with the Capture switch on, also starts the simulation.

## Solver

Internally Newton uses part of the Box2D library, a 2D physics engine initially developed for game programming.

#### Time Divider

This parameter affects the time step used for solving physical equations. It can be viewed as a time remap controller. For instance, a value of 5 produces a slower animation similar to high precision slow motion. Default value is 1.

#### Collision Tolerance

This parameter specifies the constraint and collision tolerance of the solver. Default value is 50. Smaller value often reduces gap between touching bodies, but may introduce overlap or instability when collision occurs.

#### Substeps

This parameter allows you to subdivide the time step. Default value is 2. Higher value may produce a simulation of higher quality at the expense of extra computation time.

## Actions History

You can use the Actions History panel to quickly jump between past operations. The maximum levels of undo is set to 100 by default, but this can be changed in Newton Box2 dialog. To clear history, right-click in the view and chosse Clear.

Actions History

## Loading and Saving Settings

Once you have assigned settings to bodies (including position and rotation), you can save them as an XML file. When saving settings, Newton also stores unique identifier for each body. This allows you to change your composition (adding new layers for instance), and reapply saved settings on the appropriate bodies.

If the Auto Load/Save Settings option is active, Newton will try to load (at startup) or save (at quit) the last scene settings. This option is particularly useful when you need to jump frequently back and forth between Newton and the same After Effects composition (the project must also be the same).

Load/Save Settings

## Separating Shapes

When a layer contains more than one mask or path, the Shapes Separation dialog pops up. You must specify whether Newton should interpret each shape of a layer as an individual layer (AE) or body (Newton). If you don't separate shapes, the compound shape will be considered.

Preprocessing step: shapes separation

## Applying Result

When your are satisfied with the simulation, specify the frame range to be exported and hit Render. Two additional options allow you to specify whether the result must be applied to a copy of the original composition, and whether motion blur must be enabled for moving bodies.

The simulation is solved again, but this time animation data are stored in memory. At the end of the simulation, stored values are converted to standard After Effects keyframes, and Newton quits.

Export Newton animation to After Effects keyframes

## Keyboard Shortcuts

You can open the Keyboard Shortcuts dialog either using the menu command Help > Keyboard Shortcuts... or using Alt . shortcut. The following table enumerates the available shortcuts.

Notes:

- Ctrl is replaced with Cmd on Mac.

Key | Result
--- | ---
Setting type of selected bodies
S | Set to static
K | Set to kinematic
D | Set to dynamic
A | Set to dormant
M | Set to AEmatic
E | Set to dead
Moving/Rotating selected bodies
←↑→↓ | Move by 1 pixel
Shift ←↑→↓ | Move by 10 pixels
+/- | Rotate by 1 degree
Shift +/- | Rotate by 10 degrees
Selecting bodies
C | Select bodies with the same color
L | Select bodies with the same label
Q | Select bodies with the same collision group
T | Select bodies with the same type
I | Invert selection
Selecting joints
W | Select joints of selected bodies
Alt W | Remove joints of selected bodies
F | Select joints with the same type
Selecting tools
V | Select the Selection Tool
H | Select the Hand Tool
Space Bar | Select temporarily the Hand Tool
Y | Select the Joint Anchor Tool
G | Select the Gravity Tool
P | Select the Velocity Tool
Simulation commands
0 | Start or Pause
Home | Go to first frame
1 or Page Down | Go to next frame
2 | Loop simulation from 0 to current time
Joint Anchors
X | Move AEmatic anchor to center of mass
Alt move | Relative shift of selected AEmatic anchors
| Move anchorA and anchorB of selected distance joints
| Relative shift of selected pivot joints
| Move anchorA and anchorB of selected spring joints
Creating distance joints
Alt Click | Shortest distance
Alt Shift Click | Shortest distance on anchorA-anchorB line
Ctrl Alt Click | Between every pair
Ctrl Alt Shift Click | Triangulation
Show or hide panels
Alt 1 | Bodies
Alt 2 | Joints
Alt 3 | Global Properties
Alt 4 | Body Properties
Alt 5 | Joint Properties
Alt 6 | Export
Alt 7 | Info
Alt 8 | Actions History
Ctrl Alt 1 | Toggle All
Alt 0 | Reset to default layout
Menu Commands
Ctrl Alt P | Open Preferences
Alt O | Load Settings
Alt S | Save Settings
F1 (win), Cmd ? (mac) | Open User's Guide
Alt . | Open Keyboard Shortcuts
Ctrl Alt Q | Quit Newton
Miscellaneous
Delete or Backspace | Remove selected scene presets
Crtl Alt Shift +/- | Increase or decrease line width of selected open shape
Z | Reset pan and zoom

## Troubleshooting

If you detect a bug or have any questions about Newton, do not hesitate to contact our customer support team.