ReadonlykernelUnique string identifying this kernel implementation. Used to prevent mixing shapes from different kernels.
Add hole wires to an existing face.
Get faces adjacent to a given face within a shape.
Apply a composed transform to a shape with history tracking.
Optionaloptions: {Approximate a surface via LSPIA.
Fit a B-spline surface through a grid of Z-heights.
Build an extrusion scaling law (s-curve or linear).
Build a triangular face from 3 points. Returns null if degenerate. Used by importers, hull, roof, and surface builders.
Pre-validate operands before a boolean operation.
Create an arena checkpoint. Returns checkpoint index.
Get the current number of active checkpoints.
Generate a circular pattern of shapes.
Optional_tolerance: numberClassify a point using robust dual-method.
Classify a point using winding numbers.
Create a composed transform from a sequence of translate/rotate operations. Returns an opaque handle.
Configure STEP writer unit settings.
Configure STEP writer standard settings (color, layer, name, schema).
Create a Geom2dAdaptor_Curve for algorithmic queries. Caller must delete.
Create a BRepAdaptor for curve evaluation (CompCurve for wires, Curve for edges).
Create a persistent distance query tool for repeated measurements.
Create an identity gp_GTrsf2d. Caller must dispose.
Create a gp_GTrsf2d from a point or axis mirror. Caller must dispose.
OptionaloriginX: numberOptionaloriginY: numberOptionaldirX: numberOptionaldirY: numberCreate a gp_GTrsf2d from a rotation. Caller must dispose.
Create a gp_GTrsf2d from a uniform scale. Caller must dispose.
Create a gp_GTrsf2d from a translation. Caller must dispose.
Create an XCAF document with named, colored shape nodes. Caller must delete the returned handle.
Elevate the degree of a NURBS edge curve.
Check if a curve is closed.
Check if a curve is periodic.
Insert a knot into a NURBS edge curve.
Remove a knot from a NURBS edge curve.
Get the period of a periodic curve.
Evaluate a point at a raw parameter value on a curve.
Split a NURBS edge curve at a parameter. Returns two edges.
Get the geometric curve type (LINE, CIRCLE, BSPLINE, etc.).
Cut (subtract) tool from shape.
Optional_options: BooleanOptionsCut all tools from shape sequentially.
Optional_options: BooleanOptionsOptional_options: BooleanOptionsRemove faces from a solid (defeaturing).
Detect small features (faces below area threshold). Returns face shapes.
Discard a checkpoint without restoring (keep all handles).
Dispose a kernel handle, releasing its resources.
Minimum distance between two shapes with witness points.
Downcast a shape to a more specific type (e.g., TopoDS_Shape → TopoDS_Edge).
Optionaltype: ShapeTypeDraft (taper) faces of a solid along a pull direction about a neutral plane.
The neutral plane is the surface where material is neither added nor removed. Angle is in degrees; positive tapers outward from the pull direction.
Uniform angle, or per-face callback returning degrees (null to skip).
Get edge-to-face adjacency map as JSON.
Execute a batch of kernel operations from JSON. Returns JSON result.
Export shape to 3MF format. Returns binary data.
Export shape to GLB format. Returns binary data.
Export shape to OBJ format. Returns binary data.
Export shape to PLY format (binary). Returns binary data.
Optional_options: { unit?: string }Export shapes to STEP with full configuration (units, assembly mode).
Optional_options: { modelUnit?: string; schema?: number; unit?: string }Optionalbinary: booleanVariable-radius fillet. Each entry specifies edges and radii per edge.
Optional_options: {Fix face orientations for consistent normals. Returns fix count.
Fix self-intersections in a wire.
Run ShapeFix_Shape on a shape (fixes orientation, etc.).
Fuse all shapes in one operation (N-way union).
Optional_options: BooleanOptionsOptional_options: BooleanOptionsApply a non-orthogonal general transform (gp_GTrsf path for shear / non-uniform scale).
Get the second-to-last Bezier control pole of a 3D edge curve.
Extract NURBS data from a BSpline/Bezier edge. Returns null for non-NURBS curves.
Extract cylinder data from a surface handle. Returns null if not a cylinder.
Compute a hash code for a shape (used for face tracking).
Check if a shape already has triangulation data.
Optional_face: anyHelical sweep of a profile around an axis.
Import from 3MF format. Returns solid shapes.
Import from GLB format. Returns a solid shape.
Import from OBJ format. Returns a solid shape.
Optional_options: BooleanOptionsTest if two shapes are geometrically equal (same location + orientation).
Check if a shape handle is null.
Test if two shapes are the same topological entity.
Check if a shape is topologically and geometrically valid.
Uses relaxed validation when available — accepts NURBS approximation tolerances that strict mode would flag.
Cross-kernel note: OCCT uses BRepCheck_Analyzer (no relaxed
variant). brepkit uses validateSolidRelaxed().
Iterate a TopTools_ListOfShape, calling a callback for each item.
Optional_ruled: booleanOptional_startShape: anyOptional_endShape: anyLoft through wires with options for shell mode, ruled surface, and vertex caps.
Optionaloptions: {Optional_options: {Optionalsense: booleanOptional_start: numberOptional_end: numberOptional_xDir: [number, number, number]OptionalxDirX: numberOptionalxDirY: numberOptionalsense: booleanOptional_xDir: [number, number, number]Build an ellipsoid solid with the given axis half-lengths.
Optional_planar: booleanBuild a face on an existing surface bounded by a wire.
Optionalcenter: [number, number, number]Optionaldirection: [number, number, number]Optional_leftHanded: booleanBuild a non-planar face by filling a wire's boundary.
Optionalcenter: [number, number, number]Build a wire from a mix of edges and wires (uses Add_1 for edges, Add_2 for wires).
Compute volume, area, length, center-of-mass, and bounding box in one call.
OptionalincludeLinear: booleanMerge coincident vertices within tolerance. Returns merge count.
Boolean operation on raw triangle data. Returns merged mesh.
Cross-kernel note: Only brepkit supports mesh booleans natively. OCCT adapter throws.
Tessellate edges for wireframe display.
Cross-kernel note: brepkit only supports linear deflection;
angularTolerance is ignored (a one-time warning is emitted).
Pre-compute mesh data for a shape (incremental meshing).
Cross-kernel note: brepkit only supports linear deflection;
angularTolerance is ignored.
Multiply base by other in-place: base = base * other.
Optional_tolerance: numberPosition a shape at a parameter along a spine curve (Frenet frame transform).
Project 3D edges onto a 2D plane (hidden line removal).
OptionalcameraXAxis: [number, number, number]Recognize geometric features. Returns JSON description.
Remove zero-length (degenerate) edges. Returns removal count.
Remove all inner wires (holes) from a face. Returns a new face with only the outer boundary.
Restore arena to a checkpoint, freeing all handles created after it.
Return a copy of the shape with reversed orientation.
Reverse the U direction of a surface. Returns a new surface handle.
Revolve a shape around an axis defined by center+direction (Vec3s, not KernelType axis).
Optionalaxis: readonly [number, number, number]Optionalcenter: readonly [number, number, number]Cross-section: intersect shape with a plane.
Optional_approximation: booleanSet the translation part of a gp_GTrsf2d (mutates).
Sew shapes together at shared edges.
Optionaltolerance: numberSew triangular faces into a shell and convert to solid.
Get the orientation of a shape (forward, reversed, internal, external).
Get shared edges between two faces.
Optional_tolerance: numberSimplify a shape by merging same-domain faces and edges.
Split shape by tool shapes.
Surface-based center of mass (uses surface properties, not volume).
Compute surface curvature at a UV point on a face.
Optionaloptions: { transitionMode?: number }Sweep a profile along a spine with advanced options (transition mode, auxiliary spine, law).
Optionaloptions: {Serialize a shape to a string format for persistence.
Cross-kernel warning: The serialization format is kernel-specific. OCCT uses its native BREP text format; brepkit proxies to STEP. Data produced by one kernel cannot be deserialized by the other.
Apply N transforms in a single call.
Apply a general 2D transform to a curve via GeomLib.GTransform.
Build a triangulated surface from a height grid.
Untrim a NURBS face to its full surface domain.
Create a kernel color from RGB 0-255 and alpha 0-1.
Wrap a raw Geom2d_Curve in a Handle_Geom2d_Curve.
Wrap a JS string as a kernel extended string.
Write an XCAF document to STEP format and return the string.
Optional_options: { modelUnit?: string; unit?: string }
brepjs — Public API