Skip to content

Commit 9b4cb21

Browse files
committed
feat: changelog
1 parent 75ec076 commit 9b4cb21

1 file changed

Lines changed: 76 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
## [2025-11-23]
6+
7+
### Features
8+
9+
#### Import Capabilities
10+
11+
- **STL File Import**: Load external STL files (binary and ASCII formats) as Solid components
12+
- New `Solid.fromSTL()` method for importing 3D models
13+
- Automatic normalization for seamless CSG operations
14+
- Full support for transforms, boolean operations, and grid arrays
15+
- Uses Three.js STLLoader (no additional dependencies)
16+
17+
- **SVG Path Import**: Import SVG paths and extrude them into 3D profiles
18+
- New `Solid.profilePrismFromSVG()` method for extruding SVG paths
19+
- Supports all standard SVG path commands (M/m, L/l, H/h, V/v, C/c, Q/q, A/a, Z/z)
20+
- Automatic Y-axis coordinate conversion (SVG Y-down → 3D Y-up)
21+
- Perfect for logos, custom profiles, and 2D designs
22+
- Uses Three.js SVGLoader (no additional dependencies)
23+
24+
- **Combined Import Operations**: Imported geometries work seamlessly with CSG operations
25+
- STL + primitives boolean operations
26+
- SVG + STL combinations
27+
- Grid arrays from imported geometries
28+
29+
#### New Examples
30+
31+
- Added comprehensive tutorial `N-importing.ts` with 14 example components
32+
- STL import basics, transformations, and boolean operations
33+
- SVG shapes: rectangles, stars, curves, hearts
34+
- Advanced combinations: parametric imports, STL+SVG mixing, grid patterns
35+
- Added sample STL asset (`projects/examples/assets/sample.stl`) for testing
36+
37+
### Improvements
38+
39+
#### Code Architecture
40+
41+
- Extracted path segment types to dedicated module (`src/lib/3d/path-factories.ts`)
42+
- `StraightSegment` and `CurveSegment` types now in separate file
43+
- `straight()` and `curve()` factory functions modularized
44+
- Better code organization and reusability
45+
46+
#### Input Validation
47+
48+
- Enhanced validation across all primitive creation methods
49+
- Comprehensive validation for cube, cylinder, sphere, cone, and prism
50+
- Transform method validation (scale, rotate, move, at)
51+
- Better error handling for edge cases
52+
- NaN and Infinity detection with clear error messages
53+
- Zero and negative dimension validation
54+
55+
### Testing
56+
57+
- Added comprehensive validation test suite (`tests/unit/lib/3d/Solid.validation.test.ts`)
58+
- 380 lines of test coverage
59+
- Primitive validation tests for all geometry types
60+
- Transform validation tests (scale, rotate, move, at)
61+
- Edge case coverage: very small values, very large values, NaN, Infinity
62+
- Zero dimensions and negative value handling tests
63+
64+
### Documentation
65+
66+
- Updated `CLAUDE.md` with complete import capabilities documentation
67+
- STL import usage and examples
68+
- SVG path import usage and supported commands
69+
- Boolean operations with imported geometries
70+
- Updated `README.md` with import feature overview
71+
- Added extensive inline comments in example files
72+
73+
### Internal
74+
75+
- Added project planning document (`plan.MD`)
76+
- Merged fixes from main branch (wedge positions)

0 commit comments

Comments
 (0)