Texturize
Texturize is a displacement layer: any triangle mesh, world-space projection, adaptive subdivision, masks, STL out. It is its own design module — not a Mesh Sculptor sidecar.
Empty Canvas opens a 50 mm cube with Knurl bump-shaded. The cube stays closed. Optional 3D Preview displaces along smooth welded normals (still 12 triangles until you export). Load your own STL/OBJ to replace the cube. Live-link Mesh Sculptor / Node mesh is optional and never automatic.
When to use which
| Need | Module |
|---|---|
| Design the solid (spline, cross-section, loft, inner wall) | Mesh Sculptor |
| Displace the lathe surface along ring normals | Mesh Sculptor bump-map effect |
| Displace any triangle mesh (cube, imported STL, or live sculptor) with triplanar / cubic / cylindrical mapping | Texturize |
Pipeline
Every Texturize export bake passes through the same stages. The viewport never runs this pipeline: it shows the source mesh with a preview shader (bump-only by default).
Bake stages
- Source mesh — starter cube, imported STL/OBJ (welded), or a live Mesh Sculptor / Node Sculptor mesh.
- Place and rotate — Euler XYZ, then drop the lowest vertex onto Z = 0. Place on Face sets that rotation from a clicked triangle.
- Weld — coincident vertices merge so displacement can stay watertight. Preview does not crease-split faces apart.
- Adaptive subdivision (export only) — long edges split until they are under the quality edge length (hard cap 2 million triangles).
- Heightmap — a 512×512 procedural map, or your custom image (longest side capped at 1024 px), optionally box-blurred.
- World-space sample — triplanar blend or a single UV from cubic / cylindrical / spherical / planar mapping. Scale is in millimetres vs the largest bbox edge (planar / triplanar / cubic).
- Masks — angle (top/bottom lids, flat face normal), painted faces or a UV stamp, then a feather curve.
- Watertight displace — one smooth normal and one height per unique position (10 µm grid). Optional invert, symmetric mid-grey, overhang protect, snap-to-bed.
- Decimate to the quality triangle cap, then T-junction snap when decimation ran.
- Normals — recomputed on the displaced mesh for lighting and STL.
Left dock
Texturize uses a single dock tab. There is no Print tab: printer / material / nozzle presets do not affect this module. Export is mesh-only.
Load Model
Source
Load STL / OBJ- Opens a file picker. Accepts
.stland.obj(binary or ASCII STL). Files over 15 MB warn that preview may be slow; files over 100 MB are rejected. Dropping a mesh on the viewport does the same import. Replaces the cube or a previous import and clears face-id paint. Place on Face- Click a triangle so that face sits on the bed (outward normal down). Works for any orientation — the resulting Rotate X / Y / Z may all change. The tool turns off after one click. Disabled while a live module is linked.
Reset cube- Restores the 50 mm starter cube, clears the imported mesh, Euler, and face-id paint. Texture and mapping settings stay.
Rotate X / Y / Z- Euler degrees (−180 to 180) applied around the mesh centre, then the part is dropped onto Z = 0. 0° next to the fields zeros the Euler. Disabled on a live link.
Live module- Appears only when the project also has a Mesh Sculptor or Node Sculptor module. Choose one to stream its current mesh; choose Off — use cube or STL to disconnect. Live links are never created automatically. Place / rotate / reset cube are locked while live.
Texture
A Simple / Patterns / SVG grid (Knurl default) plus optional custom heightmap. See Textures.
Displacement
Displacement
Texture height (mm)- Peak displacement along the vertex normal. Range 0–10, default 0.5. With Symmetric on, mid-grey is zero and both directions use this amplitude.
Invert- Flips the heightmap (bright becomes inward). Off by default.
Symmetric (mid-grey = 0)- On by default. 0.5 in the map is no motion; darker pulls in, brighter pushes out. Off: black is the surface and white is full height (one-sided relief).
3D Preview- Off by default. When on, the GPU displaces the source mesh along smooth unique-position normals. A 12-triangle cube looks cracked — leave this off. Place on Face stays bump-only so clicks hit the real cube. The overlay always shows the source triangle count (12 for the cube). Turning this off does not CPU-bake into the viewport — export is the only bake.
Transform
Projection
Projection- Triplanar (default), Cubic (Box), Cylindrical, Spherical, Planar XY / XZ / YZ. Details on the Mapping page.
Size U / Size V (mm)- Pattern period in millimetres (1–200, default 25). The chain button locks U = V (on by default).
Offset U / Offset V- Shifts the pattern in UV repeats (−5 to 5). Use to park a motif on a face.
Rotation (°)- Rotates the sampled UVs (−180 to 180).
Masking
Skip lids by angle, then optionally paint by surface. Feather the result. Full tools: Masks.
Masking (summary)
Bottom / Top (°)- Skip faces whose normal is within this angle of down / up. Default Bottom 5°, Top 0° so the cube sits flat on the bed.
Transition- Triplanar blend sharpness (0–1, default 0.5). Higher = harder seams between the three planar projections.
Draw / Erase / Fill / Face- Painter. Draw (circle) is the default. Empty include = no texture. All / None / Invert in the HUD. Ctrl or Shift erases. Viewport tints painted faces light green.
Face / Fill details- Face = coplanar flood (1°). Fill = neighbour dihedral up to Crease (30°). Double-click Face/Fill = To crease. Live modules stamp a UV mask.
Grow / To crease / Shrink / Similar / Linked- Edit the painted set. See Masks. Undo last paint is a session snapshot, not Ctrl+Z.
Ctrl / Shift- Erases from the current include list (or paints 0 on a UV mask).
Clear all masks- Removes face-id lists and the UV mask. Angle masks are unchanged.
Feather / Curve- Softens the mask edge (0–10 mm). Curve: Ease-In (default), Linear, S-curve.
Advanced
Collapsed by default.
Advanced
Overhang protect- Clamps any negative Z component of the displacement so vertices do not punch downward into overhangs. Off by default.
Snap bottom (mm)- After displacement, vertices within this distance of the lowest Z are flattened onto that plane (0–2, default 0). Use a small value if the bed face rumples.
Blur (px)- Box blur on the heightmap before sampling (0–16, default 0). Softens procedural maps and custom images.
Cap blend (°)- Shown for Cylindrical and Cubic only (0–45). Near-horizontal normals switch to a planar XY cap so the lid does not stretch the side mapping.
Viewport
The 3D viewer always shows the source mesh. Unpainted faces stay the material color. Painted faces show the heightmap (bump and, when 3D Preview is on, displace).
- Drop STL or OBJ anywhere on the viewport.
- Status bar (bottom-left overlay): module name or filename, source triangle count, approximate buffer size in MB, bounding box in mm, and N faces painted.
- Wireframe — overlay checkbox; painted faces stay visible as overlay soup because line shading cannot carry the shader tint.
- Paint tools — Draw / Erase / Fill / Face / All / None / Invert at the top of the Texturize dock and as a compact HUD in the viewport. Place on Face: click a triangle, Esc to exit.
- Brush circle — world millimetres, positioned in the overlay (
absolute inset-0), not a fixed screen overlay. - Live source — if a Mesh Sculptor / Node module is linked, a label names that source.
Orbit / pan / zoom match the rest of the app (left-drag, right-drag, wheel).
3D Preview vs export
- 3D Preview (default off) is a shader on the source mesh. Off = bump shading only (cube stays closed). On = vertex displace under the include mask — a coarse cube looks cracked. Place on Face is always bump-only so picking stays accurate.
- Export Mesh in the top toolbar bakes on the CPU. The caret picks Draft / Standard / High / Ultra (edge length + triangle cap). The main button exports High (~0.35 mm, 750k cap). The viewport never CPU-bakes.
Texturize has no G-code. The viewport is not printable Z. Quality table and slicer notes: Preview and export.
Saving your work
- The recipe (mapping, amplitude, texture id, masks, Euler, live-source id) is stored in the
.3dsynthproject. - Displaced vertices are never persisted. Reopening a project re-runs preview from the source + recipe.
- An imported mesh is stored as packed geometry inside the project so the STL does not have to sit next to the file. Large imports make large projects.
- A custom heightmap is stored as packed grayscale in the project.
- Live links store the source module id, not a mesh snapshot. If you delete the Mesh Sculptor module, switch Texturize back to cube or STL.
Related
- Texturize tutorial — first cube to STL.
- Mapping — projections, millimetre scale, triplanar blend.
- Textures — one equal thumb grid (kernels, Pattern tiles, SVG tiles), custom + Make seamless.
- Masks — angle, paint, UV stamp, feather.
- Preview and export — quality presets and slicer workflow.
- Mesh Sculptor — author the solid, then live-link it here.
- Exporting 3D models — STL as used across mesh modules.
- Getting Started · Presets & Projects