This page provides an interactive demonstration of the Clipper2 library compiled to WASM (WebAssembly). It was built to test Clipper2 WASM syntax during development of the geometry engine for EasyTrace5000.
Core Boolean Operations
Boolean Operations
Test union, intersection, difference, and XOR operations with draggable shapes
Ready to run test
Letter B CreationHole Detection
Union strokes to form the letter B with proper CCW holes
Ready to run test
Nested Structure
Create complex nested shapes with draggable islands
Ready to run test
PCB Trace Fusion
Merge PCB traces and pads into unified regions with holes
Ready to run test
Path Operations
Path Offsetting
Create internal and external offsets with various join types
Ready to run test
Path Simplification
Reduce vertices while preserving shape (using rabbit SVG)
Ready to run test
Minkowski vs OffsetComparison
Compare Minkowski operations with standard offsets. Circle patterns produce identical results, while non-circular patterns reveal key differences.
Minkowski Result
Offset Result
Ready to run test
Analysis Tools
Point in Polygon
Test if points are inside, outside, or on polygon edges
px
Click to add test points
Area Calculation
Draw a polygon and calculate its area and winding direction
Click points to draw polygon (min 3)
Arc ReconstructionMetadata
Demonstrates metadata preservation through boolean operations and reconstruction of analytic curves from tessellated results
Polygonal Result
Reconstructed Arc
Arc Start
Arc End
Ready to run test
Additional Clipper2 Functions
The Clipper2 WASM wrapper also provides access to advanced functions not demonstrated in these interactive tests:
PolyTree/PolyPath structures: Hierarchical polygon representation with parent-child relationships, essential for complex nested geometries.
TrimCollinear: Optimization tool to remove redundant vertices on straight segments.
RectClip operations: Extremely fast O(n) rectangular clipping for axis-aligned regions (viewport culling).
These features are native to the Clipper2 library and fully exposed by the wrapper. Refer to the Clipper2-WASM documentation for more API detail.