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 |
|---|---|---|---|
|
ported |
|
4x4 transform construction, decomposition and rotation maths. |
|
partial |
|
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. |
|
ported |
|
the trade-size catalogue and the cartridge. |
|
ported |
|
bezier curves, paths and patches. |
|
n/a |
– |
BOSL v1 compatibility shims; nothing to be compatible with here. |
|
ported |
|
PCO-1810/1881 and SPI threads, caps and necks. |
|
n/a |
– |
wrappers over OpenSCAD builtins, which PythonSCAD exposes directly. |
|
ported |
|
Color, the palettes, and the colour-space conversions. |
|
n/a |
– |
sorting and approximate comparison are Python’s and NumPy’s. |
|
ported |
|
directions, anchors, and the $-style specials. |
|
ported |
|
coordinate conversions and point-list transforms. |
|
ported |
|
the truss segments, clips and supports. |
|
ported |
|
every copier, as methods on shapes and paths. |
|
ported |
|
arc, turtle (commands and methods), stroke/dashed_stroke, helix. 3-D arcs are not ported. |
|
n/a |
– |
OpenSCAD needs a function-literal library; Python does not. |
|
ported |
|
spur, bevel, worm and rack gears. |
|
ported |
|
lines, planes, circles, triangles, hulls. |
|
ported |
|
knuckle and living hinges, snap locks. |
|
ported |
|
the hook family. |
|
partial |
|
3-D isosurfaces and metaballs (Metaball). The 2-D analogues (contour, mb_circle and friends) and mb_cyl are not ported. |
|
ported |
|
dovetails, snap joiners, rabbit clips. |
|
n/a |
|
matrix maths is NumPy’s; the BOSL2 helpers have no Python analogue. |
|
ported |
|
LM__UU bearings and their housings. |
|
n/a |
– |
list slicing/reversing/sorting is Python’s. |
|
ported |
|
edge/corner/face profiles: Mask2D, Mask3D, and the profile cutters. |
|
ported |
|
scalar maths, interpolation, root finding, cumulative ops. |
|
partial |
|
the metric catalogue lives in parts.screws; BOSL2’s own file is a thin deprecated wrapper. |
|
ported |
|
the odds and ends: extrusions, hulls, projections. |
|
ported |
|
the segment, ball and socket ends. |
|
ported |
|
motor bodies, mounts and masks. |
|
ported |
|
NURBS curves and patches. |
|
ported |
|
the cut-profile grammar and both mask forms. |
|
ported |
|
path maths, as Path2D / Path3D objects. |
|
ported |
|
the Platonic, Archimedean and Catalan solids. |
|
ported |
|
outlines-with-holes, booleans, and offsets. |
|
ported |
|
corner rounding, offset sweeps, joints and prisms. |
|
ported |
|
hex, torx, phillips and slot recesses. |
|
ported |
|
the ISO/UTS catalogues, heads, nuts and holes. |
|
ported |
|
every 2-D primitive, on both backends via the facade. |
|
ported |
|
every 3-D primitive, on both backends via the facade. |
|
ported |
|
skin, sweep, path_sweep, textures. |
|
ported |
|
the rail and slider pairs. |
|
n/a |
– |
the include-everything header; import pybosl2 is the equivalent. |
|
n/a |
– |
string handling is Python’s. |
|
n/a |
– |
key-value structures are Python dicts and dataclasses. |
|
ported |
|
every thread profile, rods, nuts and helices. |
|
ported |
|
the transform family, as methods and as matrices. |
|
ported |
|
triangle solvers; the rest is Python’s math. |
|
ported |
|
the Manfrotto RC2 quick-release plate. |
|
ported |
|
the 3-D turtle, sharing its command language with the 2-D one. |
|
n/a |
– |
type predicates and defaults are Python’s. |
|
ported |
|
vector maths and nearest-point searches. |
|
n/a |
|
pybosl2 has its own version; BOSL2’s version gates are moot. |
|
ported |
|
the mesh interchange type and its operations. |
|
ported |
|
the sparse and corrugated wall panels. |
|
ported |
|
wire bundle routing. |