BOSL2 coverage

pybosl2 aims to be feature compatible with BOSL2, not API compatible (SPEC B2-1): the same things can be built, with an API designed for Python. This table is the evidence for that claim, and the gap list where it does not hold yet.

Checked against BOSL2 v2.0.751 (tree df336a2c28f3); 42 of the 56 upstream files are ported, 3 partial, 0 unported, and 11 have nothing to port.

Status meanings:

  • ported – the module’s features are available, through pybosl2’s own API

  • partial – some of it is available; the note says what is missing

  • unported – nothing of it is available yet

  • n/a – nothing to port – OpenSCAD plumbing that Python or NumPy already provides

BOSL2 file

Status

pybosl2

Notes

affine.scad

ported

pybosl2.transforms, pybosl2.quaternions

4x4 transform construction, decomposition and rotation maths.

attachments.scad

partial

pybosl2.shapes3d.base, pybosl2.shapes2d.base, pybosl2._edges_lang

anchor/spin/orient, attach/align/position/reorient, the tag and diff system. The parent-child module tree BOSL2 leans on has no equivalent, so $parent_*-style introspection is absent.

ball_bearings.scad

ported

pybosl2.parts.ball_bearings

the trade-size catalogue and the cartridge.

beziers.scad

ported

pybosl2.beziers

bezier curves, paths and patches.

bosl1compat.scad

n/a

BOSL v1 compatibility shims; nothing to be compatible with here.

bottlecaps.scad

ported

pybosl2.parts.bottlecaps

PCO-1810/1881 and SPI threads, caps and necks.

builtins.scad

n/a

wrappers over OpenSCAD builtins, which PythonSCAD exposes directly.

color.scad

ported

pybosl2.color

Color, the palettes, and the colour-space conversions.

comparisons.scad

n/a

sorting and approximate comparison are Python’s and NumPy’s.

constants.scad

ported

pybosl2.constants, pybosl2.enums

directions, anchors, and the $-style specials.

coords.scad

ported

pybosl2.transforms, pybosl2.points

coordinate conversions and point-list transforms.

cubetruss.scad

ported

pybosl2.parts.cubetruss

the truss segments, clips and supports.

distributors.scad

ported

pybosl2.distributors

every copier, as methods on shapes and paths.

drawing.scad

ported

pybosl2.shapes2d.circle, pybosl2.turtle, pybosl2._stroke2d, pybosl2._stroke3d, pybosl2.path3d

arc, turtle (commands and methods), stroke/dashed_stroke, helix. 3-D arcs are not ported.

fnliterals.scad

n/a

OpenSCAD needs a function-literal library; Python does not.

gears.scad

ported

pybosl2.parts.gears

spur, bevel, worm and rack gears.

geometry.scad

ported

pybosl2.geometry

lines, planes, circles, triangles, hulls.

hinges.scad

ported

pybosl2.parts.hinges, pybosl2.sdf.joiners

knuckle and living hinges, snap locks.

hooks.scad

ported

pybosl2.parts.hooks

the hook family.

isosurface.scad

partial

pybosl2.isosurface, pybosl2.vnf

3-D isosurfaces and metaballs (Metaball). The 2-D analogues (contour, mb_circle and friends) and mb_cyl are not ported.

joiners.scad

ported

pybosl2.parts.joiners, pybosl2.sdf.joiners

dovetails, snap joiners, rabbit clips.

linalg.scad

n/a

pybosl2.math

matrix maths is NumPy’s; the BOSL2 helpers have no Python analogue.

linear_bearings.scad

ported

pybosl2.parts.linear_bearings

LM__UU bearings and their housings.

lists.scad

n/a

list slicing/reversing/sorting is Python’s.

masks.scad

ported

pybosl2.masking

edge/corner/face profiles: Mask2D, Mask3D, and the profile cutters.

math.scad

ported

pybosl2.math

scalar maths, interpolation, root finding, cumulative ops.

metric_screws.scad

partial

pybosl2.parts.screws

the metric catalogue lives in parts.screws; BOSL2’s own file is a thin deprecated wrapper.

miscellaneous.scad

ported

pybosl2.miscellaneous

the odds and ends: extrusions, hulls, projections.

modular_hose.scad

ported

pybosl2.parts.modular_hose

the segment, ball and socket ends.

nema_steppers.scad

ported

pybosl2.parts.nema_steppers

motor bodies, mounts and masks.

nurbs.scad

ported

pybosl2.nurbs

NURBS curves and patches.

partitions.scad

ported

pybosl2.partitions

the cut-profile grammar and both mask forms.

paths.scad

ported

pybosl2.paths, pybosl2.path2d, pybosl2.path3d

path maths, as Path2D / Path3D objects.

polyhedra.scad

ported

pybosl2.parts.polyhedra

the Platonic, Archimedean and Catalan solids.

regions.scad

ported

pybosl2.regions

outlines-with-holes, booleans, and offsets.

rounding.scad

ported

pybosl2.rounding, pybosl2.skin

corner rounding, offset sweeps, joints and prisms.

screw_drive.scad

ported

pybosl2.parts.screw_drive

hex, torx, phillips and slot recesses.

screws.scad

ported

pybosl2.parts.screws

the ISO/UTS catalogues, heads, nuts and holes.

shapes2d.scad

ported

pybosl2.shapes2d, pybosl2.flat

every 2-D primitive, on both backends via the facade.

shapes3d.scad

ported

pybosl2.shapes3d, pybosl2.solid

every 3-D primitive, on both backends via the facade.

skin.scad

ported

pybosl2.skin, pybosl2.textures

skin, sweep, path_sweep, textures.

sliders.scad

ported

pybosl2.parts.sliders

the rail and slider pairs.

std.scad

n/a

the include-everything header; import pybosl2 is the equivalent.

strings.scad

n/a

string handling is Python’s.

structs.scad

n/a

key-value structures are Python dicts and dataclasses.

threading.scad

ported

pybosl2.parts.threading

every thread profile, rods, nuts and helices.

transforms.scad

ported

pybosl2.transforms

the transform family, as methods and as matrices.

trigonometry.scad

ported

pybosl2.geometry

triangle solvers; the rest is Python’s math.

tripod_mounts.scad

ported

pybosl2.parts.tripod_mounts

the Manfrotto RC2 quick-release plate.

turtle3d.scad

ported

pybosl2.turtle

the 3-D turtle, sharing its command language with the 2-D one.

utility.scad

n/a

type predicates and defaults are Python’s.

vectors.scad

ported

pybosl2.vectors

vector maths and nearest-point searches.

version.scad

n/a

pybosl2.version

pybosl2 has its own version; BOSL2’s version gates are moot.

vnf.scad

ported

pybosl2.vnf

the mesh interchange type and its operations.

walls.scad

ported

pybosl2.parts.walls

the sparse and corrugated wall panels.

wiring.scad

ported

pybosl2.parts.wiring

wire bundle routing.