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.
Logic flows from top to bottom. Nested blocks define the hierarchy of the toolpath.
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
Drag blocks from the toolbox, snap them together. Scroll to zoom; click + drag on empty space to pan. Endless canvas.
3D viewport
Live preview of the generated toolpath—same viewer as Profile mode. Updates in real time as you edit.
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.
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
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.
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:
| Variable | Range | Meaning |
|---|---|---|
z | mm | Current Z height |
normZ | 0–1 | Normalized height (0 = bottom, 1 = top) |
layerIndex | 0, 1, 2… | Current layer number |
t | 0–1 | Position along current segment |
s | mm | Absolute path length so far |
normS | 0–1 | Normalized 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.
1. Simple spiral vase
Circle + Spiral Up. A 40 mm diameter cylinder, 50 mm tall, printed in a continuous spiral.
2. Tapered vase
Map Range takes normZ and remaps to 12–30 mm radius. Narrow at bottom, wide at top.
3. Wavy vase
normZ × 18.85 (≈ 6π) + Sin + Map Range. A vase that bulges and narrows three times over height.
4. Speed variation
Set Speed before Spiral Up. Map Range: 900 mm/min at bottom to 2400 mm/min at top.
5. Square vase
Polyline defines a 30×30 mm square. Nest inside Spiral Up for a square-section spiral.
6. Multiple paths
Two Path Groups with concentric circles. Travel move between them—a double-walled vase.
7. Offset shape
Translate shifts the Circle 30 mm to the right. Define geometry at origin, use transforms to position.
8. Temperature gradient
For Z with Set Temperature. Map Range from 195°C to 220°C for color-changing filament effects.
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
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.