Visual Logic

SynthBlocks
Visual Toolpath Logic.

Visual block-based programming for custom G-code. Snap together blocks that define geometry, movement, and extrusion—the engine compiles them into real, print-ready G-code.

SynthBlocks Interface

What you can build

SynthBlocks produces real G-code with start/end code, extrusion, and temperature commands—ready to print. You never need to touch raw G-code.

  • Arbitrary 2D shapes lifted into 3D (spirals, stacked layers)
  • Procedural variation over height using math and variables
  • Speed, flow, temperature changes at any point in the path
  • Repeating patterns with loops and seeded randomness
  • Impossible geometries beyond the limits of a single profile curve

How it works

SynthBlocks uses a blocks-to-G-code pipeline. The same blocks with the same seed always produce the same output—deterministic and reproducible.

Toolpath paths
Translate 125 105
Spiral Up 0.260 300
Circle wobble×sin wobble×cos 25

Logic flows from top to bottom. Nested blocks define the hierarchy of the toolpath.

Generated 3D Toolpath Preview

Author

Drag blocks from the toolbox, snap them together. No scripting required.

Compile

The app translates blocks into a typed data structure (Path Program IR).

Generate & preview

The engine interprets the IR, samples geometry, writes G-code. 3D viewport updates live.

The interface

When you activate SynthBlocks, the workspace has three areas.

Block Canvas UI

Block canvas

Drag blocks from the toolbox, snap them together. Scroll to zoom; click + drag on empty space to pan. Endless canvas.

3D Viewport

3D viewport

Live preview of the generated toolpath—same viewer as Profile mode. Updates in real time as you edit.

G-Code Inspector

G-code inspector

View generated G-code, warnings, and print statistics. Your printer, nozzle, and material settings apply automatically.

The toolbox

Blocks are organized into ten categories. Each category has a distinct color and purpose.

Toolpath
Circle 0 0 20
Spiral Up
Translate
Set radius 25
Map Range

Structure

Toolpath root, path groups, sequences, loops.

Geometry

2D shapes—circles, polylines, curves, polygons, text, spirals.

Z Strategy

Lift 2D geometry into 3D—Spiral Up, Stack Layers.

Transforms

Move, rotate, scale nested geometry.

Process

Control speed, flow, temperature, and G-code commands.

Travel

Travel moves, retraction, and unretraction.

Variables

Create and update named variables for use in loops.

Math

Numbers, context variables, expressions, randomness, Map Range, Sin, Clamp.

Safety

Bounds checking, sampling, and debug markers.

Printer Settings

Read-only printer and build volume values (Bedsize X/Y/Z, layer height, nozzle width).

Your first program

Every SynthBlocks design starts with a Toolpath block. A simple spiral vase uses just three blocks.

Example: Spiral vase

Toolpath paths
Spiral Up 0.250 250
Circle 0 0 20

1. The Toolpath block is already on the canvas with an empty Path Group.
2. From Z Strategy, drag a Spiral Up block into the Path Group.
3. From Geometry, drag a Circle block into the Spiral Up's geometry slot.
4. The viewport updates with a spiral cylinder.

Spiral Vase Result
Add variation: Drag a Variable (normZ) and Map Range block into the Circle's radius input—the cylinder becomes a tapered vase.

Key concepts

Path Groups

A Path Group is an independent toolpath. The engine processes groups sequentially and inserts travel moves (with zhop and retraction) between them. Use multiple groups when you want separate, non-connected paths.

Named variables

The Variables category lets you create your own named variables. Click Create Variable, give it a name, and the toolbox automatically populates with Set and Get blocks. Variables with numeric initial values also appear as interactive controls.

Seed and randomness

The Toolpath block has a seed field (shown when you use a Random block). All Random blocks use this seed for deterministic output. Change the seed to get a different variation; keep it fixed for reproducible results.

Context variables

Math blocks can read context variables that the engine updates automatically during generation:

VariableRangeMeaning
zmmCurrent Z height
normZ0–1Normalized height (0 = bottom, 1 = top)
layerIndex0, 1, 2…Current layer number
t0–1Position along current segment
smmAbsolute path length so far
normS0–1Normalized path length

Use these with Map Range, Sin, or Clamp to create geometry and process values that change over height, position, or layer.

Examples & recipes

Step-by-step recipes for common SynthBlocks programs. Each example builds on concepts from the previous one.

Spiral Vase Diagram

1. Simple spiral vase

Toolpath
Spiral Up
Circle 20

Circle + Spiral Up. A 40 mm diameter cylinder, 50 mm tall, printed in a continuous spiral.

Tapered Vase Diagram

2. Tapered vase

Circle 0 0
Map Range normZ 0→1 1230

Map Range takes normZ and remaps to 12–30 mm radius. Narrow at bottom, wide at top.

Wavy Vase Diagram

3. Wavy vase

normZ × 18.85 (≈ 6π) + Sin + Map Range. A vase that bulges and narrows three times over height.

Speed Variation Diagram

4. Speed variation

Set Speed before Spiral Up. Map Range: 900 mm/min at bottom to 2400 mm/min at top.

Square Vase Diagram

5. Square vase

Polyline defines a 30×30 mm square. Nest inside Spiral Up for a square-section spiral.

Multiple Paths Diagram

6. Multiple paths

Two Path Groups with concentric circles. Travel move between them—a double-walled vase.

Offset Shape Diagram

7. Offset shape

Translate shifts the Circle 30 mm to the right. Define geometry at origin, use transforms to position.

Temp Gradient Diagram

8. Temperature gradient

For Z with Set Temperature. Map Range from 195°C to 220°C for color-changing filament effects.

Building complex designs: Combine examples—tapered + wavy, multi-shape + transforms, layer-aware process with For Z, randomized variation with Random blocks, named variables for accumulation in loops.

Tutorials

From Beginner (Circular Shape, Spiral Vase, Basic Cube) through Intermediate (Blooming Flower, Wobble Vase, Heart Vase) to Difficult and Expert—work through the full curriculum in the app.

24+

SynthBlocks Tutorials

48+

G-code Tutorials

Open tutorials

Saving & presets

SynthBlocks designs are saved in .3dsynth project files, just like Profile designs. You can also save them as Design Presets to reuse or share. The block workspace is stored as part of the design module—no separate file format.

Ready to program?

Build toolpath logic visually. No code required.