fluent-sdfx

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 6, 2026 License: MIT

README ΒΆ

Go Reference Go Report Card Build Coverage License

A fluent, chainable API for sdfx β€” Go's signed distance function CAD library.

fluent-sdfx wraps sdfx's SDF2 and SDF3 types with shape.Shape and solid.Solid, giving you a chainable API that reads like a description of the part you're building. All angles are in degrees. All constructors handle errors internally so you can chain without interruption. An anchor-based positioning API (Top, OnTopOf, Inside, …) and a layout package of pattern helpers (Polar, Grid, RectCorners, …) let you place parts without bounding-box math.

πŸ“š Read the docs β€” install, project setup, the dev loop, foundations, operations, cookbook recipes, and the full API reference.

[!NOTE] Status: v0.x. The library is usable today but pre-1.0 β€” the public API may shift in response to early-user feedback. Watch releases for breaking-change notes; pin a tag if you need stability.

Install

go get github.com/snowbldr/fluent-sdfx

Quick example

Example output

package main

import (
	"github.com/snowbldr/fluent-sdfx/layout"
	"github.com/snowbldr/fluent-sdfx/solid"
)

func main() {
	// A cylinder with 4 holes drilled through it at the corners of a 10x10 square.
	solid.Cylinder(20, 10, 1).
		Cut(solid.Cylinder(25, 2, 0).
			Multi(layout.RectCorners(10, 10)...)).
		STL("part.stl", 3.0)
}

The quickstart walks through this exact part in five incremental steps.

The recipe pattern

For multi-part assemblies, fluent-sdfx is meant to be written as ingredients at the top, method at the bottom β€” bare primitives in named variables, then one fluent expression that positions and combines them via anchors and layout helpers. No pos1 := ...; result := pos1.Foo() ladder. The lantern cookbook is the canonical worked example, and the positioning page explains why.

What's in the docs

  • Install β€” Go, fluent-sdfx, f3d.
  • Project setup β€” scaffold a Go module and produce your first STL.
  • Gallery β€” eight finished parts at a glance, each linking to its cookbook source.
  • Coming from another CAD library β€” mapping table for OpenSCAD / CadQuery / Build123d / sdfx users.
  • Dev loop with stldev β€” watch-rebuild-preview iteration cycle.
  • Quickstart β€” five steps to a non-trivial part.
  • Foundations β€” vectors, 2D shapes, 3D solids, booleans, transforms, positioning.
  • Operations β€” extrude/revolve/loft/sweep, smooth blends, modifiers, patterns, cross-sections, text, output resolution, parametric helpers, testing & validation.
  • Cookbook β€” bolt assembly, enclosure, gear.
  • API reference β€” every type and method, package by package.

Repo layout

fluent-sdfx/
β”œβ”€β”€ shape/      2D primitives, builders, transforms, booleans
β”œβ”€β”€ solid/      3D primitives, transforms, booleans, modifiers, anchor positioning
β”œβ”€β”€ layout/     Pattern helpers (Polar, Grid, RectCorners, …) for .Multi(...)
β”œβ”€β”€ obj/        Parametric helpers (bolts, panels, gears, …)
β”œβ”€β”€ render/     Output formats (STL, 3MF, DXF, SVG, PNG)
β”œβ”€β”€ mesh/       Triangle-mesh utilities
β”œβ”€β”€ validate/   Mesh validation: watertight, volume, overhang, *testing.T helpers
β”œβ”€β”€ plane/      Plane helpers for cross-sections
β”œβ”€β”€ units/      Constants and unit conversions
β”œβ”€β”€ vec/        Vector types (v2, v3, v2i, v3i, p2)
β”œβ”€β”€ examples/   77 example projects
β”œβ”€β”€ tutorial/   Runnable code paired with the docs site
└── docs/       The fntags-based documentation site

License

MIT

Directories ΒΆ

Path Synopsis
docs
visuals/positioning command
Generates the visual reference for docs/content/positioning.md.
Generates the visual reference for docs/content/positioning.md.
examples
3dp_nutbolt command
angle command
arrow command
axochord command
axoloti command
beehive command
benchmark command
bezier command
birdhouse command
bjj command
bolt_container command
bucky command
camshaft command
cap command
carburetor command
challenge command
cylinder_head command
dc2test command
delta command
devo command
draincover command
drone command
dust_collection command
eurorack command
extrusion command
fidget command
finial command
flask command
gas_cap command
gears command
geneva command
gridfinity command
gyroid command
helix command
SweepHelix showcase: sweeps a variety of 2D profiles along helical paths with and without flatEnds.
SweepHelix showcase: sweeps a variety of 2D profiles along helical paths with and without flatEnds.
hole_patterns command
holes command
hollowing_stl command
hpe command
inlet_hood command
joko command
keycap command
loadcell command
maestro command
maixgo command
mcg command
mesh_test command
midget command
monkey_hat command
msquare command
nordic command
nutcover command
nutsandbolts command
offset_box command
opengate command
panel_box command
phone command
pico_cnc command
picorx command
pillar_holder command
pipe_connectors command
pool command
pottery_wheel command
radio command
ringnut_tool command
rpi command
screw_assortment command
Screw assortment: renders an array of screw configurations covering all thread profiles (ISO, ACME, buttress, plastic-buttress), multi-start, left-hand, tapered, and extreme dimensions.
Screw assortment: renders an array of screw configurations covering all thread profiles (ISO, ACME, buttress, plastic-buttress), multi-start, left-hand, tapered, and extreme dimensions.
servo command
simple_stl command
spiral command
sprue command
square_flange command
tabbox command
tacho_bracket command
tapers command
test command
text command
voronoi command
Package layout returns position arrays meant to be spread into the variadic .Multi(positions...) on Solid and Shape.
Package layout returns position arrays meant to be spread into the variadic .Multi(positions...) on Solid and Shape.
Package mesh provides triangle-mesh utilities and types that complement the SDF-based shape and solid packages.
Package mesh provides triangle-mesh utilities and types that complement the SDF-based shape and solid packages.
Package obj provides parametric helper constructors for parts you'd otherwise build by hand.
Package obj provides parametric helper constructors for parts you'd otherwise build by hand.
Package plane provides 3D plane helpers for slicing operations.
Package plane provides 3D plane helpers for slicing operations.
Package render provides output formats and renderer constructors used internally by the *solid.Solid and *shape.Shape STL/3MF/DXF/SVG/PNG methods.
Package render provides output formats and renderer constructors used internally by the *solid.Solid and *shape.Shape STL/3MF/DXF/SVG/PNG methods.
Package shape is the 2D side of fluent-sdfx: a chainable wrapper around sdfx's SDF2 type with primitives, transforms, booleans, polygon and bezier builders, text, threads, cams, and gears.
Package shape is the 2D side of fluent-sdfx: a chainable wrapper around sdfx's SDF2 type with primitives, transforms, booleans, polygon and bezier builders, text, threads, cams, and gears.
Package solid is the 3D side of fluent-sdfx: a chainable wrapper around sdfx's SDF3 type with primitives, transforms, booleans, smooth blends, and anchor-based positioning.
Package solid is the 3D side of fluent-sdfx: a chainable wrapper around sdfx's SDF3 type with primitives, transforms, booleans, smooth blends, and anchor-based positioning.
tools
decimate-stl command
decimate-stl reads a binary STL, simplifies the mesh via meshoptimizer to a target triangle count, and writes the result back as binary STL.
decimate-stl reads a binary STL, simplifies the mesh via meshoptimizer to a target triangle count, and writes the result back as binary STL.
tutorial
02-project-setup/01-hello-part command
Project setup: a minimal main.go that proves your fluent-sdfx install works.
Project setup: a minimal main.go that proves your fluent-sdfx install works.
04-quickstart/01-cylinder command
Quickstart step 1: a plain cylinder.
Quickstart step 1: a plain cylinder.
04-quickstart/02-with-one-hole command
Quickstart step 2: drill one hole down the middle with Cut.
Quickstart step 2: drill one hole down the middle with Cut.
04-quickstart/03-with-four-holes command
Quickstart step 3: drill four holes via Multi β€” places copies of the tool at the given positions, then Cut subtracts them all in one op.
Quickstart step 3: drill four holes via Multi β€” places copies of the tool at the given positions, then Cut subtracts them all in one op.
04-quickstart/04-with-rounded-edges command
Quickstart step 4: round the body's top and bottom edges by setting the round parameter.
Quickstart step 4: round the body's top and bottom edges by setting the round parameter.
04-quickstart/05-polished-final command
Quickstart step 5: print-shrinkage compensation and mesh decimation for a smaller STL.
Quickstart step 5: print-shrinkage compensation and mesh decimation for a smaller STL.
05-vectors-types/01-vectors-demo command
Vectors demo: build a small assembly using v2, v3, and p2 constructors.
Vectors demo: build a small assembly using v2, v3, and p2 constructors.
06-shapes-2d/01-rect command
2D shapes: a rounded rectangle.
2D shapes: a rounded rectangle.
06-shapes-2d/02-circle command
2D shapes: a circle.
2D shapes: a circle.
06-shapes-2d/03-polygon command
2D shapes: an arbitrary polygon from a list of vertices.
2D shapes: an arbitrary polygon from a list of vertices.
06-shapes-2d/04-hexagon command
2D shapes: a regular hexagon by inscribed radius.
2D shapes: a regular hexagon by inscribed radius.
06-shapes-2d/05-star command
2D shapes: a 5-pointed star with outer/inner radius and point count.
2D shapes: a 5-pointed star with outer/inner radius and point count.
06-shapes-2d/06-polybuilder-with-arcs command
2D shapes: a fluent polygon builder with smoothed and chamfered corners.
2D shapes: a fluent polygon builder with smoothed and chamfered corners.
06-shapes-2d/07-bezier command
2D shapes: a closed bezier curve via NewBezier with slope handles.
2D shapes: a closed bezier curve via NewBezier with slope handles.
07-solids-3d/01-box command
3D solids: a rounded box via solid.Box(size, round).
3D solids: a rounded box via solid.Box(size, round).
07-solids-3d/02-cylinder command
3D solids: a cylinder via solid.Cylinder(height, radius, round).
3D solids: a cylinder via solid.Cylinder(height, radius, round).
07-solids-3d/03-sphere command
3D solids: a sphere via solid.Sphere(radius).
3D solids: a sphere via solid.Sphere(radius).
07-solids-3d/04-cone command
3D solids: a truncated cone β€” bottom radius 10, top radius 4, height 18.
3D solids: a truncated cone β€” bottom radius 10, top radius 4, height 18.
07-solids-3d/05-capsule command
3D solids: a capsule β€” a cylinder with hemispherical caps.
3D solids: a capsule β€” a cylinder with hemispherical caps.
07-solids-3d/06-torus command
3D solids: a torus with a major radius (centre-to-tube distance) and a minor radius (tube radius).
3D solids: a torus with a major radius (centre-to-tube distance) and a minor radius (tube radius).
08-booleans/01-union command
Booleans: Union joins two solids into one.
Booleans: Union joins two solids into one.
08-booleans/02-cut command
Booleans: Cut subtracts the tool from the body (set difference).
Booleans: Cut subtracts the tool from the body (set difference).
08-booleans/03-intersect command
Booleans: Intersect keeps only the volume common to both solids.
Booleans: Intersect keeps only the volume common to both solids.
08-booleans/04-multi-cut command
Booleans: Cut is variadic β€” pass any number of tools and they're all removed from the body in a single operation.
Booleans: Cut is variadic β€” pass any number of tools and they're all removed from the body in a single operation.
09-transforms/01-translate command
Transforms: Translate moves a solid by a vector.
Transforms: Translate moves a solid by a vector.
09-transforms/02-rotate command
Transforms: RotateX / Y / Z take an angle in degrees.
Transforms: RotateX / Y / Z take an angle in degrees.
09-transforms/03-scale command
Transforms: Scale takes a per-axis vector; ScaleUniform a single factor.
Transforms: Scale takes a per-axis vector; ScaleUniform a single factor.
09-transforms/04-mirror command
Transforms: Mirror operations reflect a solid across an axis plane.
Transforms: Mirror operations reflect a solid across an axis plane.
09-transforms/05-chained command
Transforms: every transform returns a new *Solid, so they chain.
Transforms: every transform returns a new *Solid, so they chain.
09a-positioning/01-anchor-basics command
Positioning: every Solid has 27 named anchors on its bounding box β€” 6 face centers (Top, Bottom, Left, Right, Front, Back), 12 edge midpoints (TopRight, BottomFront, ...) and 8 corners (TopFrontRight, ...).
Positioning: every Solid has 27 named anchors on its bounding box β€” 6 face centers (Top, Bottom, Left, Right, Front, Back), 12 edge midpoints (TopRight, BottomFront, ...) and 8 corners (TopFrontRight, ...).
09a-positioning/02-stack-on command
Positioning: stack a cap on top of a body in one chain.
Positioning: stack a cap on top of a body in one chain.
09a-positioning/03-flush-edge command
Positioning: place a tab so its right face is flush with the host's right face, inset slightly, with its bottom on the floor.
Positioning: place a tab so its right face is flush with the host's right face, inset slightly, with its bottom on the floor.
09a-positioning/04-radial-layout command
Positioning: layout.Polar(radius, n) returns n positions evenly spaced on a circle in the XY plane.
Positioning: layout.Polar(radius, n) returns n positions evenly spaced on a circle in the XY plane.
09a-positioning/05-grid-corners command
Positioning: layout.RectCorners returns the 4 XY corners of a rectangle centered on the origin β€” perfect for standoffs around a panel.
Positioning: layout.RectCorners returns the 4 XY corners of a rectangle centered on the origin β€” perfect for standoffs around a panel.
10-2d-to-3d/01-extrude command
2D β†’ 3D: linear extrusion of a 2D profile.
2D β†’ 3D: linear extrusion of a 2D profile.
10-2d-to-3d/02-extrude-rounded command
2D β†’ 3D: extrusion with rounded top and bottom edges.
2D β†’ 3D: extrusion with rounded top and bottom edges.
10-2d-to-3d/03-twist-extrude command
2D β†’ 3D: extrusion that twists the profile around Z over the height.
2D β†’ 3D: extrusion that twists the profile around Z over the height.
10-2d-to-3d/04-scale-extrude command
2D β†’ 3D: extrusion that scales the profile linearly over the height.
2D β†’ 3D: extrusion that scales the profile linearly over the height.
10-2d-to-3d/05-revolve command
2D β†’ 3D: full revolution of a 2D profile around the Y axis.
2D β†’ 3D: full revolution of a 2D profile around the Y axis.
10-2d-to-3d/06-revolve-angle command
2D β†’ 3D: partial revolution β€” a wedge of a full revolve.
2D β†’ 3D: partial revolution β€” a wedge of a full revolve.
10-2d-to-3d/07-loft command
2D β†’ 3D: loft transitions between two 2D profiles over a height.
2D β†’ 3D: loft transitions between two 2D profiles over a height.
10-2d-to-3d/08-sweep-helix command
2D β†’ 3D: SweepHelix sweeps a 2D profile along a helical path.
2D β†’ 3D: SweepHelix sweeps a 2D profile along a helical path.
10-2d-to-3d/09-screw command
2D β†’ 3D: Screw revolves a thread profile around Z to make screw threads.
2D β†’ 3D: Screw revolves a thread profile around Z to make screw threads.
11-smooth-blends/01-round-min command
Smooth blends: SmoothUnion with a RoundMin blend function fillets the junction between two solids with a circular radius.
Smooth blends: SmoothUnion with a RoundMin blend function fillets the junction between two solids with a circular radius.
11-smooth-blends/02-chamfer-min command
Smooth blends: ChamferMin produces a 45Β° chamfer at the union seam instead of a fillet.
Smooth blends: ChamferMin produces a 45Β° chamfer at the union seam instead of a fillet.
11-smooth-blends/03-smooth-cut command
Smooth blends: SmoothCut fillets the *inside* corner where a tool is subtracted from a body.
Smooth blends: SmoothCut fillets the *inside* corner where a tool is subtracted from a body.
11-smooth-blends/04-smooth-array command
Smooth blends: SmoothArray repeats a solid in a grid where each neighbour is smooth-unioned to its peers, producing soft webs between what would otherwise be discrete copies.
Smooth blends: SmoothArray repeats a solid in a grid where each neighbour is smooth-unioned to its peers, producing soft webs between what would otherwise be discrete copies.
12-modifiers/01-shell command
Modifiers: Shell hollows out a solid, leaving a wall of the given thickness.
Modifiers: Shell hollows out a solid, leaving a wall of the given thickness.
12-modifiers/02-offset command
Modifiers: Offset moves every surface along its outward normal by the given distance.
Modifiers: Offset moves every surface along its outward normal by the given distance.
12-modifiers/03-shrink-grow command
Modifiers: Shrink/Grow uniformly inset or expand all surfaces by a scalar.
Modifiers: Shrink/Grow uniformly inset or expand all surfaces by a scalar.
12-modifiers/04-elongate command
Modifiers: Elongate stretches a solid along the given axes by inserting a flat-walled "extrusion" between the two halves of the SDF.
Modifiers: Elongate stretches a solid along the given axes by inserting a flat-walled "extrusion" between the two halves of the SDF.
13-patterns/01-array command
Patterns: Array repeats a solid on a regular grid.
Patterns: Array repeats a solid on a regular grid.
13-patterns/02-rotate-copy command
Patterns: RotateCopyZ duplicates a solid n times around the Z axis, evenly spaced.
Patterns: RotateCopyZ duplicates a solid n times around the Z axis, evenly spaced.
13-patterns/03-line-of command
Patterns: LineOf places copies of a solid along a line from p0 to p1.
Patterns: LineOf places copies of a solid along a line from p0 to p1.
13-patterns/04-multi command
Patterns: Multi places copies of a solid at an explicit list of positions.
Patterns: Multi places copies of a solid at an explicit list of positions.
13-patterns/05-orient command
Patterns: Orient places copies of a solid pointed in a list of directions.
Patterns: Orient places copies of a solid pointed in a list of directions.
14-cross-sections/01-slice-z command
Cross-sections: SliceAt cuts a 2D cross-section through a 3D solid.
Cross-sections: SliceAt cuts a 2D cross-section through a 3D solid.
14-cross-sections/02-slice-arbitrary-plane command
Cross-sections: plane.At lets you slice on any oriented plane, not just axis-aligned ones.
Cross-sections: plane.At lets you slice on any oriented plane, not just axis-aligned ones.
14-cross-sections/03-slice-to-svg command
Cross-sections: a slice can be exported directly to SVG/DXF for laser cutting or 2D documentation.
Cross-sections: a slice can be exported directly to SVG/DXF for laser cutting or 2D documentation.
15-text-2d-output/01-text-to-png command
Text & 2D output: render a string with a TrueType font, write as PNG.
Text & 2D output: render a string with a TrueType font, write as PNG.
15-text-2d-output/02-text-to-dxf command
Text & 2D output: render a string and write to DXF (vector format used by laser cutters and CAD software).
Text & 2D output: render a string and write to DXF (vector format used by laser cutters and CAD software).
15-text-2d-output/03-text-extruded-3d command
Text & 2D output: extrude a text profile into 3D with rounded edges.
Text & 2D output: extrude a text profile into 3D with rounded edges.
16-obj-overview/01-hex-bolt command
Parametric helpers: a hex-head bolt via obj.Bolt.
Parametric helpers: a hex-head bolt via obj.Bolt.
16-obj-overview/02-panel command
Parametric helpers: a Panel3D with rounded corners and mounting holes.
Parametric helpers: a Panel3D with rounded corners and mounting holes.
16-obj-overview/03-standoff command
Parametric helpers: a PCB standoff via obj.Standoff3D.
Parametric helpers: a PCB standoff via obj.Standoff3D.
16-obj-overview/04-gridfinity command
Parametric helpers: a 2x1 Gridfinity base.
Parametric helpers: a 2x1 Gridfinity base.
17-output-resolution/01-low-res command
Output: cellsPerMM=0.5 β€” fast preview render.
Output: cellsPerMM=0.5 β€” fast preview render.
17-output-resolution/02-high-res command
Output: cellsPerMM=8 β€” final-quality render.
Output: cellsPerMM=8 β€” final-quality render.
17-output-resolution/03-decimated command
Output: high-res render decimated to 25% triangle count.
Output: high-res render decimated to 25% triangle count.
17-output-resolution/04-3mf command
Output: ThreeMF (.3mf) is the modern alternative to STL β€” a zipped XML format with explicit units, colour, and metadata.
Output: ThreeMF (.3mf) is the modern alternative to STL β€” a zipped XML format with explicit units, colour, and metadata.
18-cookbook-bolt/01-bolt-only command
Bolt assembly cookbook step 1: a single hex bolt.
Bolt assembly cookbook step 1: a single hex bolt.
18-cookbook-bolt/02-with-shank command
Bolt assembly cookbook step 2: bolt with a smooth shank.
Bolt assembly cookbook step 2: bolt with a smooth shank.
18-cookbook-bolt/03-different-thread command
Bolt assembly cookbook step 3: try a different thread standard.
Bolt assembly cookbook step 3: try a different thread standard.
18-cookbook-bolt/04-matching-nut command
Bolt assembly cookbook step 4: a matching nut.
Bolt assembly cookbook step 4: a matching nut.
18-cookbook-bolt/05-washer command
Bolt assembly cookbook step 5: a washer.
Bolt assembly cookbook step 5: a washer.
18-cookbook-bolt/06-assembly command
Bolt assembly cookbook step 6: the full assembly β€” bolt, washer, nut.
Bolt assembly cookbook step 6: the full assembly β€” bolt, washer, nut.
19-cookbook-enclosure/01-panel command
Enclosure cookbook step 1: a panel-mounted front face.
Enclosure cookbook step 1: a panel-mounted front face.
19-cookbook-enclosure/02-with-standoffs command
Enclosure cookbook step 2: panel with PCB standoffs at the corners.
Enclosure cookbook step 2: panel with PCB standoffs at the corners.
19-cookbook-enclosure/03-panelbox command
Enclosure cookbook step 3: switch to obj.PanelBox3D for a full panel-and-shell assembly.
Enclosure cookbook step 3: switch to obj.PanelBox3D for a full panel-and-shell assembly.
19-cookbook-enclosure/04-mounts command
Enclosure cookbook step 4: add internal screw mounts to a single shell.
Enclosure cookbook step 4: add internal screw mounts to a single shell.
19-cookbook-enclosure/05-assembly command
Enclosure cookbook step 5: the full enclosure with a tray shell, four PCB standoffs, and a separate screw-on lid.
Enclosure cookbook step 5: the full enclosure with a tray shell, four PCB standoffs, and a separate screw-on lid.
20-cookbook-gear/01-gear-profile command
Gear cookbook step 1: a 2D involute gear profile.
Gear cookbook step 1: a 2D involute gear profile.
20-cookbook-gear/02-with-hub command
Gear cookbook step 2: extrude the gear to thickness and add a centre hub.
Gear cookbook step 2: extrude the gear to thickness and add a centre hub.
20-cookbook-gear/03-shaft-bore command
Gear cookbook step 3: drill a shaft bore through gear and hub.
Gear cookbook step 3: drill a shaft bore through gear and hub.
20-cookbook-gear/04-final command
Gear cookbook step 4: the polished final gear β€” chamfered tooth tops, shaft bore with set-screw hole, and shrinkage compensation.
Gear cookbook step 4: the polished final gear β€” chamfered tooth tops, shaft bore with set-screw hole, and shrinkage compensation.
21-cookbook-lantern/01-body command
Lantern cookbook step 1: a rounded cylindrical body sitting flush on the build plate.
Lantern cookbook step 1: a rounded cylindrical body sitting flush on the build plate.
21-cookbook-lantern/02-pocket command
Lantern cookbook step 2: hollow out the tea light pocket.
Lantern cookbook step 2: hollow out the tea light pocket.
21-cookbook-lantern/03-side-slots command
Lantern cookbook step 3: punch decorative slots through the wall.
Lantern cookbook step 3: punch decorative slots through the wall.
21-cookbook-lantern/04-feet command
Lantern cookbook step 4: 4 small feet under the body.
Lantern cookbook step 4: 4 small feet under the body.
21-cookbook-lantern/05-finial command
Lantern cookbook step 5: cap the lantern and add a finial knob.
Lantern cookbook step 5: cap the lantern and add a finial knob.
internal/tutorialfont
Package tutorialfont embeds a TrueType font (Computer Modern, cmr10) so every tutorial step that needs text can run with no external assets.
Package tutorialfont embeds a TrueType font (Computer Modern, cmr10) so every tutorial step that needs text can run with no external assets.
Package units re-exports common numeric constants and helpers from sdfx.
Package units re-exports common numeric constants and helpers from sdfx.
Package validate inspects a solid's rendered mesh for printability and regression-test signals: triangle count, surface area, volume, watertightness (boundary-edge count), and overhang area for FDM-style 3D printing.
Package validate inspects a solid's rendered mesh for printability and regression-test signals: triangle count, surface area, volume, watertightness (boundary-edge count), and overhang area for FDM-style 3D printing.
vec
p2
Package p2 provides a 2D polar vector type.
Package p2 provides a 2D polar vector type.
v2
Package v2 provides a 2D vector type with method-chainable arithmetic.
Package v2 provides a 2D vector type with method-chainable arithmetic.
v2i
Package v2i provides a 2D integer vector type with method-chainable arithmetic.
Package v2i provides a 2D integer vector type with method-chainable arithmetic.
v3
Package v3 provides a 3D vector type with method-chainable arithmetic.
Package v3 provides a 3D vector type with method-chainable arithmetic.
v3i
Package v3i provides a 3D integer vector type with method-chainable arithmetic.
Package v3i provides a 3D integer vector type with method-chainable arithmetic.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL