Learn

Getting started with TrussLab

Open a narrated preset, learn the editor vocabulary, try changes safely with history, and leave with a structure you could actually build.

What is TrussLab#

TrussLab is a browser-based design environment for spaceframes: you place nodes, connect links, and let the editor generate printable joints and stock member lengths from that logical structure. The basic idea is simple: print the complex connection geometry, buy the length as tube, rod, or profile. Because the joint geometry is generated from the structure, members can meet at any angle: diagonals, triangulated bracing, and non-orthogonal frames are the normal case, not a special one. And although FDM plastic is the accessible default, the generated joints are not tied to it; the same exported geometry can be SLS or SLM metal printed, or CNC machined when the shape allows. If you want the longer version of why the tool is built this way, read the manifest.

You do not need an account to try it. TrussLab runs in your browser, and your designs stay local unless you choose to export or share them.

If you want help from ChatGPT, Claude, Codex, or another assistant while learning the workflow, use the AI assistant guide to copy a compact TrussLab context prompt first.

The editor is a 3D viewport with a sidebar on the right for everything structured. Camera controls follow the usual 3D conventions:

  • Orbit: drag with the left mouse button to rotate around the structure.
  • Pan: drag with the right mouse button to shift the view.
  • Zoom: scroll with the mouse wheel or trackpad.
  • Touch: one finger orbits; two fingers pan and pinch-zoom.

Clicking a node, link, or attachment selects it and opens its details in the sidebar, so most editing is: look around in the viewport, click the thing you care about, change it in the sidebar.

Start from a preset#

For a first session, start from a preset rather than a blank file. Presets are complete structures with narrated build histories, so you see the modeling decisions instead of only the finished geometry.

  1. Pick a preset from the examples or the in-app Library. Start with the triangle frame: a two-minute narrated build of the simplest possible frame, including explicit reconciliation passes before and after a geometry change. Then move on to a real structure like the pull-up bar or the bolted octahedron.
  2. Watch the narrated autoplay once before touching anything. It builds the structure step by step, in the same editor you are about to use.
  3. Use the playback controls in the bottom-right corner: pause when you want to inspect the model, scrub the progress bar to jump to any step, and mute the narration if you would rather read the step labels.
  4. Choose Take over when you are ready to edit. The model stays exactly at the current step and is yours from there.
Pull-up bar narrated autoplay

This replay-and-take-over loop is worth keeping even after the first session. Whenever you wonder how a frame was made, replay it, jump to the step that answers the question, then take over and adapt the model.

Vocabulary#

Nine terms explain most of what you see in the editor:

  • Node: A logical point in the frame.
  • Logical link: A design-level connection between two nodes.
  • Physical link: The real tube, rod, or profile generated from a logical link.
  • Virtual link: A non-physical reference link used to place and orient attachments in space.
  • Attachment: A printable part that resolves how physical links meet, mount, or connect.
  • End pinning: A link attachment setting that either leaves the offset free or pins the attachment flush with the nearest terminal end.
  • Attachment connection: A connection between explicit attachment ports that turns separate attachment bodies into a final joint or printable piece.
  • Reconciliation: An explicit action that adjusts Physical-link offsets at an eligible junction, guided by an automatic or manual specification.
  • Transaction log: The reversible history of modeling steps. It lets you undo, redo, or return to an earlier point while keeping the model consistent.

Use the Frame Editor Reference when you need the complete definition, properties, relationships, and common mistakes for an entity rather than this quick vocabulary.

Change parameters#

Presets expose their useful dimensions as named properties, so the structure can change without being rebuilt by hand. You will find them in the Properties tab of the frame sidebar.

The pull-up bar is a good place to try this. It exposes properties like frameWidth, gripLength, wallOffset, and mainTubeRadius. Change frameWidth and the whole structure follows: tubes get new lengths, joints reposition, and already-authored Relative endpoints follow their references. If the changed geometry needs a new clearance calculation, run reconciliation explicitly afterward.

When a preset exposes a property for the dimension you want to change, prefer it over moving pieces manually; it preserves the design intent and keeps every generated part consistent. Open the pull-up bar and try a few values.

Edit the structure#

Once a preset responds the way you expect, start changing the model itself: add nodes, connect links, select members, tune attachments, and inspect what updates automatically. TrussLab keeps the logical structure and the generated build geometry visible together, so nodes and links remain the design skeleton while physical members, attachments, joints, and properties show how that skeleton becomes something buildable.

Use presets as worked examples while you edit. If you want to try a workflow you have not seen yet, such as adding a diagonal brace, placing an end cap, or changing how a joint is reconciled, replay a similar preset, jump to the relevant step, take over there, and adapt it. The sections below name the main pieces you will touch as you move from a logical frame to printable joints.

Use history as a sandbox#

Frames records modeling actions as reversible transactions. That matters because the useful edits are often not tiny: a parameter change can move many nodes and links, an attachment edit can regenerate joint geometry, and reconciliation can adjust many physical link offsets at once.

Use the transaction log and the undo/redo buttons as part of normal modeling. Try a bold change, inspect the generated members and joints, then undo the change or return to an earlier history step if the result is not better. If you return to an earlier step and start editing from there, Frames will ask before discarding later redo history.

This is the safest way to learn the tool. You can try full-frame reconciliation, switch a joint strategy, move an attachment, or test a parameter range without first making a manual copy of the model.

Physical link attachments are the printable parts that sit on real members: clamps, sleeves, sockets, mounts, end caps, and other geometry that belongs to a tube, rod, or profile rather than to a logical node. They let the frame stay clean at the structural level while still carrying the practical details needed for manufacturing and assembly.

The important detail is that attachments are not isolated meshes. TrussLab feeds each physical link attachment the resolved properties of its parent Physical link, including radius, wall thickness, and available length in each direction. Attachment length, thickness, and offset can be absolute or relative to parent radius, so when the Physical-link properties change, the attached part updates automatically instead of becoming stale geometry.

When you create a frame, choose the attachment types you want from the catalogue so they are available in that frame. From there you can add a physical link attachment directly from a selected physical link, position it along the member, adjust its local length, thickness, offset, material, and implementation parameters, and keep iterating as the surrounding structure changes.

Physical link attachment parameters on a selected member

If the catalogue does not contain the part you need, create your own in the Attachment Editor. Custom physical link attachments can be built around the same parent-link inputs, then reused in frames like any other catalogue attachment.

Read the Physical-link attachments reference for parent-relative dimensions, placement, orientation, body parts, and clearances.

Virtual link attachments are similar to physical link attachments, but the parent link is only a spatial reference. A virtual link does not represent stock material, so it does not have physical properties like radius, wall thickness, or tube length. Instead, it gives an attachment a stable position and orientation in the frame.

That makes virtual link attachments useful for fittings, brackets, mounts, markers, or other model geometry that should belong to the structure but should not be attached directly to a physical member. You can place a virtual link where the part should live, add a virtual link attachment to it, then let that attachment keep its own pose as the frame changes.

Virtual link attachment keeps a fitting oriented in space

Like physical link attachments, virtual link attachment types come from the frame catalogue. If the catalogue does not contain the fitting you need, create your own in the Attachment Editor and publish it as a virtual link attachment so it can be reused in frames.

Read the Virtual-link attachments reference for parent axes, absolute dimensions, orientation, end pinning, and connection participation.

Control attachment end pinning#

Physical and virtual link attachments are positioned the same way at the frame level: each attachment belongs to a link and is anchored from one node on that link. The offset moves the attachment along the link from that node. Change the offset and the attachment slides along the member or reference link while keeping its orientation and local parameters.

End pinning decides whether the attachment offset is free or automatically kept flush with the nearest terminal end of the link:

  • Pinned to end off: leaves the offset exactly as entered. Use it when an attachment sits in the middle of a link, when it is allowed to sit beyond the link span, or when you intentionally want manual offset control.
  • Pinned to end on: places the attachment flush with the nearest terminal end of the link. The offset is derived from the attachment length, so the offset field is disabled while pinning is active.
End pinning keeps attachment offsets under control

Frame defaults can also auto-apply pinned-to-end when you add physical or virtual link attachments from a terminal node. In Defaults, use Auto Pin End Attachments to turn that behavior on or off. Attachments added from an inner node stay free because there is no terminal link end to pin to.

The important detail for physical link attachments is that they are link-aware, not just floating meshes. A sleeve, clamp, or cap can occupy only part of the physical link, and TrussLab uses that occupied portion when resolving the attachment. That makes end-cap style parts straightforward: turn pinning off when you need manual overhang, or turn it on when the attachment should stay flush with the nearest end.

Connect attachments into printable joints#

Attachments become final joint geometry through attachment connections. An attachment type can expose one or more connection ports, and a frame can connect those ports while retaining their owning body parts as the manufactured geometry.

This is where local attachment design turns into assembly behavior. Each attachment can define its own clearance geometry, and those clearances are carried into the connection so the resulting joint still leaves room for tubes, fasteners, inserts, or whatever else the individual attachments expected.

TrussLab currently offers three built-in connection modes:

  • Hull: the default mode. It creates a solid bridge around the connected port regions, which is the usual choice for turning neighboring attachments into one printable joint.
  • Strut: connects port centres with configurable circular struts. Use it when the joint should be joined by explicit members rather than a filled hull.
  • Union: adds no connector geometry of its own. It keeps the attachments grouped so the clearances from every attachment in the connection are applied across the whole connected set.
Attachment connection creates a printable joint from multiple attachment ports and owning bodies

Use attachment connections when attachments should manufacture as one coordinated part instead of as isolated pieces. The connection decides how material is added between them; the attachments still own their local shape, parameters, body parts, and clearance definitions.

For a regular frame with neighboring unconnected attachments, open + Add and choose Connect adjacent attachments to create all eligible default connections in one undoable action. Existing authored joint sites are left untouched. Use Add connection on an individual attachment when you want to choose and edit participants explicitly.

Read the Attachment connections reference for participant ports and their owning body parts, bulk connection creation, Hull, Union, and Strut semantics, shared clearances, and printable-component grouping.

Reconcile physical junctions#

Reconciliation is an explicit action that turns a clean logical junction into Physical-link endpoints that can actually meet. Several logical links can share one node, but the real tubes, rods, or profiles have radius and need clearance. Reconciliation calculates and applies the required Physical-link offsets near that junction so the members do not collide or interfere with each other.

You can explicitly apply it across every eligible junction in the frame, or select one eligible node and reconcile only the Physical links that meet there. A junction is eligible when at least two relevant Physical members participate and at least one terminal has reconciliation enabled. Most of the time the automatic spec is what you want: TrussLab uses the frame defaults to choose a meaningful strategy, such as a symmetric adjustment or a simple precedence order. “Automatic” describes the recipe, not its execution; you still run Reconcile or Reconcile all links.

When a joint needs different behavior, override it locally. A manual reconciliation spec lets you decide which physical links take precedence, reorder the steps, pair two links for a symmetric adjustment, or keep constrained links fixed while the remaining links move around them. The default preference lives in Frame Defaults, so you can set the common behavior once and only customize the joints that deserve special handling.

Reconciliation adjusts physical link offsets at one joint

Reconciliation does not add a special entity or relationship. It calculates standard Relative-node offsets and edits standard Physical-link terminals—the same result you could produce manually—and wraps those edits into one atomic transaction. It is safe to try across the whole frame because the complete result is one reversible history step: if the geometry is not better, undo the step or return to an earlier point and adjust the strategy.

Read the Reconciliation reference for the exact eligibility rules, constrained through-members, automatic and manual specifications, and the ordinary edits produced by the action.

Export and build#

Export produces the manufacturing handoff for the model: printable joint and attachment geometry, plus the stock member lengths the frame expects. Use Import/Export in the top-right menu to prepare parts for a physical build, back up a workspace, or move a model between browsers.

Before printing, inspect the generated parts and clearances. Reconciliation is a deliberate modeling action, not an automatic guarantee, so checking that links and attachments have the clearance you expect is still part of preparing a real build.

Once the parts are printed and the tubes are cut, the assembly guide covers the physical build: which fastening system each attachment uses, what hardware and adhesives to prepare, and how to dry-fit and assemble the frame.