realtime CSG   FEATURES TRY DOCUMENTATION UPDATES FORUMS FEEDBACK

A LEVEL DESIGN TOOL FOR THE 21st CENTURY

People sometimes mistake creating geometry with creating levels.
Both have very different needs and uses however!

When designing or prototyping levels you need to iterate often and quickly

The last thing you want is waste time working at the triangle level
when you're still figuring things out!

CSG allows you to focus on the design of the level
and not have to worry about the details until you choose to

You'd be surprised how easy you can create levels using CSG!

FOCUS

Realtime CSG allows you to drag parts of your level around without
ever having to worry about triangles and vertices

Since CSG works with solid primitives, you never have to
worry about gaps in your geometry either and your
physics meshes will be created automatically

Non destructive, intuitive workflow

Just drag in that prefabed door that you created,
including the hole in the wall!

Don't like the placement of that door? Just move it in
one motion and the hole will move with it!

Changed your mind? Just press delete, done!

With CSG you can keep tweaking safely until the very end of your project

MODELING WITH BRUSHES

With realtime CSG you can create your levels by
combining brushes (simple primitives you can edit) that are either additive, subtractive or intersecting.

THE HIERARCHY DEFINES THE SHAPE

Conceptually, the final mesh is created by Realtime-CSG by going through the hierarchy from top to bottom, adding, subtracting or intersecting brushes with each other.

All brushes are part of a model.

THE MODEL IS YOUR MESH

All the brushes belong to a model, which generates the final mesh that ends up in your game.

All the brushes underneath it in the hierarchy will belong to this model, unless there's another model within the model.

The settings on the model component allow you to define how this mesh will be behave in your game.

EXPORT TO FBX

If you prefer to do your finishing touches in your favorite DCC package you can export your CSG model to an FBX file. Your in scene CSG model will automatically be swapped with your exported mesh so that when you change the FBX, it'll be reflected in the scene.

Don't worry, you will always have the option to revert back to the original CSG model.

It's also possible convert your model to an Unity mesh directly instead.

OPERATIONS ALLOW YOU TO GROUP THINGS

The Operation component allows you to group brushes together and do CSG operations on more complicated shapes.

You can group selected brushes underneath an operation by pressing Cmd/Ctrl-G.

OPERATIONS DEFINE SUB-SHAPES

The operation component lets you define sub-shapes.
In this case a cylinder minus another cylinder.

These sub-shapes can then be added, removed or intersected with other parts of the model.

Pass-through behaves as if there is no operation component.

TREAT GROUPS OF BRUSHES AS A SINGLE OBJECT

If you want to group multiple brushes in one single object you can put them under an operation and check "select on child" in it's options.

Now every time you select one of it's brushes you'll select the whole operation.

DEEP CLICKING

If you need to select a brush on a position where multiple brushes overlap you can simply click multiple times to get the brush you want.

DRAG & DROP PREFABS INTO YOUR SCENE

With realtime-CSG you can easily make prefabs that automatically update the scene when modified.

When you drag & drop a prefab and drag it into the scene the prefab will automatically be placed on and rotate with the underlying geometry.

DRAW YOUR BRUSHES

Simply hold V and create an outline by clicking in the scene. Release V and drag the center to extrude your 2D shape into a 3D brush.

If you draw your outline on top of other brushes the newly generated shape will match the materials from that underlying brush.

CURVED SHAPES

Double click on edges and vertices to toggle it between being a straight line and a curved line.

Drag the handles around to control the shape of the curve

CREATE CYLINDERS

If you hold C instead, you can easily create cylinders.

You can adjust all kinds of parameters in the helper menu that shows up while creating the cylinder. This allows you to set the radius, height of the cylinder box manually

CREATE BOXES

If you hold B, you can draw boxes.

You can adjust all kinds of parameters in the helper menu that shows up while creating the box. This allows you to set the width,height and depth of the box manually.

CREATE ON ANY SURFACE

You can create all the shapes on any surface.

If you drag your shape into an existing surface it will automatically turn it into a subtractive brush for you.

Creating doors and windows has never been easier.

QUICKLY CREATE STAIRS

Simply drag out the space the stairs need to occupy and adjust the slope. The step height can be edited manually and won't be modified by adjusting the slope, this way your step sizes remain under your control.

DRAG YOUR BRUSHES

When you left click your mouse on a brush and then hold your mouse button while dragging, you can move your selected brushes around on the grid.

DRAG COPY SUPPORT

If you hold D and then drag your brush, you will drag a copy of your brush instead.

SNAP TO THE GRID

The grid visually shows you where your brushes will snap when you move them.

IN LOCAL MODE GRID IS RELATIVE TO PARENT

If the parent of the brush you're moving is rotated, the grid will also be rotated when Unity is in local mode.

EDIT YOUR BRUSHES

When in Edit-Mode you can easily move the vertices of your brush in any position you want them to be.

You can delete selected vertices by pressing the Delete key on your keyboard.

EDITING IS EASY

You can also select multiple vertices or edges on multiple brushes and drag them together.

MOVE ANY SURFACE

By dragging the green points you can move any surface where you want them to be.

If you ALT-click on a surface dot instead you can extrude the polygon.

MOVE ANY SURFACE ALONG IT'S DIRECTION

If you drag your surfaces while pressing shift it'll move into the direction it's facing.

ROTATE ANY SURFACE

If the unity rotation tool is selected and you are in mesh mode, you can rotate the current edges/vertices and polygons.

SCALE ANY SURFACE

If the unity scale tool is selected and you are in mesh mode, you can scale the current edges/vertices and polygons.

CHAMFER/BEVEL ANY VERTEX OR EDGE

While in mesh mode, if you drag a vertex or edge while holding shift you will chamfer all selected vertices/edges.

\

CLIP YOUR BRUSH

In clip-mode you can simply drag along a surface of a brush and all the selected brushes will be cut along the plane that is formed there.

CLIP YOUR BRUSHES

If you select multiple brushes, all of these brushes will be clipped by the same plane.

TWEAK YOUR CLIPPING

In the little helper menu in the bottom right corner of your view you can decide which side(s) of the plane needs to stick around and which side needs to be removed.

ROTATE OVER EDGES

In both object-mode and mesh-mode, when you use select the unity rotate tool , you can rotate your brush by dragging the edge of the brush into a circle.

SCALE BY DRAGGING

In object-mode you can also scale your brushes by moving the sides of the bounding box around your brushes.

Scale into a negative size allows you to mirror your selection

MULTIPLE BRUSHES AT THE SAME TIME

Just select the brushes you want to work with, and you can scale/rotate/move etc. them together.

DRAG MATERIALS

Just drag and drop the materials on the brush sides you want them to be on.

If you selected multiple surfaces the material will be applied to all of them.

COPY AND SMEAR MATERIALS

In surface-mode, after you select a surface, you can press G onto another surface to copy your material to another surface.

If you hold G and drag over multiple surfaces it'll make the texture coordinates flow over those surfaces. This even works when surfaces are not connected!

SELECT MATERIALS BY DRAGGING

In surface-mode you can select your surfaces by just dragging over them while holding control, shift or alt to remove/add surfaces from/to the selection.

ROTATE MATERIALS

If Unity is in rotate mode

You can press your mouse where you want to rotate your texture coordinates around, pull and just rotate around it.

MOVE MATERIALS

If Unity is in move mode

You can press your mouse and just drag your texture over the surface of your brush

Note that the texture is also snapped to the grid if snapping is on and this may make it look like it's moving in a different direction, even though it's not.

SMOOTH BETWEEN SURFACES

If you want to smooth between multiple surfaces, just select them and press smooth in the surface-mode helper menu.

Do you want them to be facetted instead? No problem, just press the un-smooth button.

DISCARD UNNECESSARY SURFACES

Sometimes you do not want certain surfaces to end up in your runtime, fortunately you can simply select and discard them.