Commit Graph

601 Commits

Author SHA1 Message Date
jyviko 65b02ff7ab Wave 292/509: STEP import: a refused solid comes in as a surface body of its exact faces (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- fd5319a0e jyviko: docs: the kernel's move from truck to SMLib, as written up on #4012
- 4cb0d6ee9 jyviko: STEP import: a refused solid comes in as a surface body of its exact faces
- e19785620 jyviko: STEP import: a refused solid's surface body faces as the file has it
- 529fb7cf3 jyviko: Release: macOS builds on macos-15 (GitHub retires macos-14 on 2026-11-02)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-28 12:48:43 -04:00
jyviko 53f4d607e2 Wave 291/509: Tessellation: a loop corner on a side collapsed within its vertex's tolerance is a pole; a face no method plans is left out, named (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 5a596dd95 jyviko: STEP import: a patch side collapsed within its vertex's tolerance is a pole of the loop
- cfee4a720 jyviko: STEP import: a solid no B-rep can be made of is shown as a mesh of the faces that read
- 5bfecd8a0 jyviko: Tessellation: a loop corner on a side collapsed within its vertex's tolerance is a pole; a face no method plans is left out, named
- 0102f95dc jyviko: Tessellation tests: rustfmt

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-28 08:06:13 -04:00
jyviko 3099117942 Wave 288/509: UI: one continuity control for every continuity choice (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- fd34314d5 jyviko: UI: one continuity control for every continuity choice
- fab8948b3 jyviko: Clippy: assign operators and is_multiple_of in the continuity code
- 1260353f4 jyviko: Fillet Corners: the shared continuity control says what each corner builds
- bf16a76a4 jyviko: SMLib: the prebuilt with eased setbacks

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 21:11:56 -04:00
jyviko 7c14ae2ce2 Wave 287/509: Continuity Analysis measures G3 and G4; the dialogs offer what each construction builds
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 2fed39c85 jyviko: Continuity Analysis measures G3 and G4; the dialogs offer what each construction builds

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 20:14:44 -04:00
jyviko ab4f92674b Wave 285/509: Continuity: one table of orders G0-G4, and one check of what each construction builds (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- f042d2073 jyviko: Isocurve test: the spline face's hole is an inner loop of one face (Refs #770)
- cb8712aa0 jyviko: Continuity: one table of orders G0-G4, and one check of what each construction builds

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 19:51:28 -04:00
jyviko a48570cd40 Wave 284/509: Isocurve Analysis draws each face's exact iso curves, cut to its trims (Refs #770)
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- be859aa0d jyviko: Isocurve Analysis draws each face's exact iso curves, cut to its trims (Refs #770)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 20:14:24 -04:00
jyviko fceb07b797 Wave 283/509: STEP import: an edge through a face's pole is split there (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 0694fd4e8 jyviko: STEP import: an edge through a face's pole is split there
- 1d70ac267 jyviko: tess: a face whose boundary still crosses itself after untangling is filled leniently, not the whole body refused
- 77bd85cab jyviko: cli: snapshot --quality coarse|normal|fine|ultra meshes the bodies at that display quality
- 1404bc1f5 jyviko: STEP import: a spline face's edges are measured on their pcurves only, not by nearest point first

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 20:45:43 -04:00
jyviko 57921d7fcd Wave 280/509: STEP import: spindle and horn tori, and a negative major radius (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- dfcdefa92 jyviko: STEP import: a loop jumps at a pole to within the tolerance, as its pcurves closed it
- 7ba82d729 jyviko: STEP import: spindle and horn tori, and a negative major radius
- 3a7b51f72 jyviko: STEP import: an edge's distance from an analytic face is measured before its closed-form pcurve
- fcb162448 jyviko: brep: the geometry check reads a pcurve at its edge's parameter within the interval's rounding

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 16:27:16 -04:00
jyviko 40f16c36bb Wave 279/509: STEP import: an edge off its face's surface carries its gap as its tolerance (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 07cb8c7cc jyviko: STEP import: an edge off its face's surface carries its gap as its tolerance
- 21c64fb24 jyviko: tess: an edge loop of fewer than three segments is split until it encloses an area
- 9da3174bb jyviko: solidcraft-smlib: a revolution goes to SMLib as its NURBS form alone
- 31b9410f5 jyviko: solidcraft-smlib: a horn torus to rounding is no ring torus

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 16:45:52 -04:00
jyviko cf8ad08ec3 Wave 272/509: Fillet dialog: plain words for continuity, Corners with Setback out of Advanced (and 2 more)
3 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 4f6f254d0 jyviko: smlib: a setback left open is a profiler span like every other SMLib call
- 676919d4d jyviko: tess: a face no method plans is filled leniently in (u, v), and named in the stats
- 1acbe2806 jyviko: Fillet dialog: plain words for continuity, Corners with Setback out of Advanced

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 11:12:59 -04:00
jyviko 0968a2a42d Wave 271/509: smlib, kernel: a refused setback corner is named by its point and why (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- b2fc5e1fb jyviko: smlib, kernel: a refused setback corner is named by its point and why
- 855575473 jyviko: SMLib: the prebuilt with setback-open corners and the refused-corner index

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 11:56:36 -04:00
jyviko 34c5bc74a5 Wave 270/509: kernel-cases: a continuity check, and ladder 07/015 graded by it (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- d8282b336 jyviko: doc, engine: corner: g2 sets each corner back for its G2 patch
- 8fbb575a5 jyviko: kernel-cases: a continuity check, and ladder 07/015 graded by it
- 808913777 jyviko: kernel: G2 corners at concave corners, mixed ones refused
- ba38fbd2a jyviko: kernel-cases: ladder 07/019, a concave corner's G2 patch

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 13:37:34 -04:00
jyviko 706eafbb17 Wave 269/509: kernel: fillet_g2_corners, set-back corners filled G2 to every face round them
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 704640375 jyviko: kernel: fillet_g2_corners, set-back corners filled G2 to every face round them

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 12:32:39 -04:00
jyviko 68263a8e02 Wave 268/509: smlib: Brep::blend_setback_open, set-back corners left open with their holes (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 6263db8d6 jyviko: smlib: Brep::blend_setback_open, set-back corners left open with their holes
- d63a50c47 jyviko: kernel: seam diagnostics give every station's values

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 12:32:39 -04:00
jyviko 335278e3c7 Wave 266/509: Profiler: commands, feature evaluation, io; diagnostics.profile; CLI --profile (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 10ea00e74 jyviko: Profiler: every SMLib C API call is a span, timed by the C API itself
- 319c0bc9f jyviko: Profiler: kernel operations and STEP/IGES import stages are spans
- 9cd655259 jyviko: Profiler: commands, feature evaluation, io; diagnostics.profile; CLI --profile
- fafd977b0 jyviko: Profiler: the Profile operations preference switches recording at run time

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 08:22:36 -04:00
jyviko ae7a464148 Wave 264/509: Smooth edges: hide only joins inside one smooth surface (G2); draw tangent joins (and 2 more)
3 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- f6645e2c6 jyviko: Threads: a modelled thread's tangent flank joins are not drawn
- 970c29745 jyviko: Smooth edges: a measured crease is kept apart from a tangent display join
- 541b94a60 jyviko: Smooth edges: hide only joins inside one smooth surface (G2); draw tangent joins

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 02:25:51 -04:00
jyviko c025baddd4 Wave 263/509: Smooth edges: one G1 rule on exact surfaces and pcurves (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 57d48aa9f jyviko: Clippy: the kernel's and engine's warnings on develop
- b52a01e29 jyviko: Attribution: the hand-written box STL of kernel case 4561
- 15caa50d2 jyviko: CI affected crates: no truck crates are vendored any more
- c95580d04 jyviko: Smooth edges: one G1 rule on exact surfaces and pcurves

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-27 01:15:08 -04:00
jyviko 5a4e482e9c Wave 260/509: Formatting: rustfmt over the rebased branch (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 562a5bd33 jyviko: Formatting: rustfmt over the rebased branch
- bc15221fa jyviko: The desktop app links SMLib by default
- e476aba94 jyviko: SMLib in the browser: built with wasi-sdk for wasm32-unknown-unknown
- e1ad6ec1a jyviko: SMLib links prebuilt: one build per commit, pinned by SHA-256

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 22:57:25 -04:00
jyviko d6dacbd6d8 Wave 258/509: Cargo.lock: resolved for the merged manifests (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 3e9c70e26 jyviko: Cargo.lock: resolved for the merged manifests
- 6e15b9676 jyviko: engine, kernel-cases: tangent joins out of the corner-pick count; 3383 and 5024 recipes to main's rules
- 46294c7c2 jyviko: kernel: STEP placements by a transformation operator keep its axes and scales
- 3d0f6aa3f jyviko: kernel: IGES trim pieces closed onto their meeting points in main's assembly reader

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 13:52:59 -04:00
jyviko dc8b5489fc Wave 257/509: Main's new callers of the placing calls that now return their error (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- d63aa814f jyviko: threads: main's tapped-hole sizes and shaft turn-down on the reworked thread
- cfc393d68 jyviko: Main's new callers of the placing calls that now return their error

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 13:18:38 -04:00
jyviko 27b8046c6f Wave 256/509: Rebase onto main: what the merged code needs to build together
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 9138e8704 jyviko: Rebase onto main: what the merged code needs to build together

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 13:02:55 -04:00
jyviko 6fcd6713f5 Wave 251/509: kernel: fillet_setback, constant-radius rounds with corners set back (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- c2361c000 jyviko: smlib: Brep::blend_setback, blends with corner setbacks (smlib_blend_setback)
- f85343879 jyviko: kernel: fillet_setback, constant-radius rounds with corners set back
- c854239d1 jyviko: doc, engine: solid.fillet setbacks: [{vertex, distance}]
- 9ffd2f783 jyviko: kernel-cases: ladder 07/013 corner setback graded by invariants

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 11:14:20 -04:00
jyviko cc425a6e5c Wave 248/509: Thread runouts: the groove fades out instead of stopping square (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 3287bcba9 jyviko: Threads with several starts
- 7bfc184e8 jyviko: A modelled thread's chamfered tip (ISO 4753)
- d433ce2c9 jyviko: Thread runouts: the groove fades out instead of stopping square
- fdede5a0a jyviko: Thread work in rustfmt's layout

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 09:50:52 -04:00
jyviko 71a81514ee Wave 246/509: Threads start at the end meant and stop clear of a shoulder
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 366b90597 jyviko: Threads start at the end meant and stop clear of a shoulder

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 08:57:30 -04:00
jyviko cffbe6a72b Wave 243/509: kernel: sag refinement adds no node to a face's boundary
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 3f2585569 jyviko: kernel: sag refinement adds no node to a face's boundary

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 07:51:14 -04:00
jyviko 7c481d281f Wave 239/509: engine: a shell that opens no face makes a closed hollow body (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 48abbbcc1 jyviko: kernel: a vertex a face's loops pass twice is one point of its (u, v)
- 1df330c79 jyviko: engine: a shell that opens no face makes a closed hollow body
- 5aeff43f8 jyviko: smlib: a horn or spindle torus face comes out as its NURBS form
- bd4e1926a jyviko: kernel-cases: 2928's base extrudes the ring it describes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-26 05:04:57 -04:00
jyviko 2425f8b453 Wave 238/509: geom: a face's box reaches its boundary's extremes, not its samples' (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 903e371fa jyviko: geom: a face's box reaches its boundary's extremes, not its samples'
- cfe1b8b92 jyviko: step: a loop through its surface's pole has its seam
- 0bea4631b jyviko: kernel: IGES trim pieces that miss their meeting point are closed onto it
- 0e6681a2d jyviko: kernel: the largest fitting fillet shrinks only on a refusal as too large

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-25 21:27:27 -04:00
jyviko a5fc58bfed Wave 237/509: kernel, kernel-cases: a convex blend overflowing a cliff is built, with its analytic answer (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 237f0ae74 jyviko: kernel, kernel-cases: a convex blend overflowing a cliff is built, with its analytic answer
- 7d300984b jyviko: kernel, kernel-cases: a shell whose walls would meet is refused, saying so
- 3be6ad433 jyviko: kernel: a tangent chain stops where the edges' convexity flips
- 098fac037 jyviko: geom: a face's loops lie in one turn of its periodic surface

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-25 19:51:02 -04:00
jyviko e5bca0495d Wave 232/509: sew: a cut-out touching its face's outline at a corner is one loop through it
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- c991a2613 jyviko: sew: a cut-out touching its face's outline at a corner is one loop through it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-25 08:48:02 -04:00
jyviko a68a6ca981 Wave 231/509: doc: a join groups pieces that touch nothing; only edge and point contacts are kept apart (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 810f0d66d jyviko: doc: a join groups pieces that touch nothing; only edge and point contacts are kept apart
- 1d98d5111 jyviko: smlib: solids touching round a pocket each export as one closed shell

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-25 08:48:02 -04:00
jyviko 7fe4469fc4 Wave 230/509: tess: a face's sampled boundary never crosses itself (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 773e627b4 jyviko: tess: no edge segment spans more than a quarter turn; loops touching at a vertex close
- 806268714 jyviko: tess: a face's sampled boundary never crosses itself

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-24 22:52:57 -04:00
jyviko 8554b2a0e4 Wave 229/509: doc: a join keeps solids that only touch as separate bodies (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 94ee28d5c jyviko: doc: a join keeps solids that only touch as separate bodies
- 3e2b109cc jyviko: engine: feature commands take touching; a join's result notice
- ec6fa9706 jyviko: kernel: a seam with one face on both of its sides is a seam, and no pick takes it
- 19cf11ef3 jyviko: kernel-cases: ladder 07-fillets/016's second fillet rounds only its picked edge

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-24 22:49:17 -04:00
jyviko c7ead5658d Wave 228/509: kernel: how a body's material regions meet, read from the record (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 42e50a87c jyviko: smooth edges: tangent joins of planes, cylinders and cones, along straight splines too
- 89e23d1eb jyviko: record: a body built from a sketch has new edges, with no origins
- 8eb93ff06 jyviko: step_in tests: the cube fixture's edges lie on their lines
- 4b418c0d2 jyviko: kernel: how a body's material regions meet, read from the record

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 09:02:24 -04:00
jyviko 30fbf80cc4 Wave 225/509: kernel tests: a blend meant to run along a tangent chain asks for it (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 667ee5665 jyviko: kernel tests: a blend meant to run along a tangent chain asks for it
- 74d02d2a0 jyviko: smlib: the fork with NVIDIA usd-brep 1.0.1 merged (f7f012b)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-23 22:42:32 -04:00
jyviko 06c2c6087b Wave 224/509: STEP and IGES import: SMLib makes the pcurves that have no closed form (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 306c7b75b jyviko: pcurve: a rim at a steady pace on a spline face, read from the edge itself
- 28e0eea80 jyviko: pcurve: each use's closed form or none, and a kernel's trims for the rest
- 1bf206259 jyviko: STEP and IGES import: SMLib makes the pcurves that have no closed form
- 879958721 jyviko: pcurves: a flat patch's are a plane's; SMLib's sheet loops read either way round

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-23 22:22:32 -04:00
jyviko 9767f95c31 Wave 223/509: brep: meridians, revolutions and whole turns exact on their forms (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 2883981a0 jyviko: brep: meridians, revolutions and whole turns exact on their forms
- 6c385c843 jyviko: sew, step: face forms from the boundary's extent; trimmed profiles exact
- fd71e6a95 jyviko: kernel: assembled faces and edges on their NURBS forms
- f6f8b28c0 jyviko: Records require NURBS forms on circles, ellipses and curved analytic faces

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-23 20:07:48 -04:00
jyviko cf0ff5159d Wave 221/509: sew: an edge folded across a bend gets a Hermite pcurve on the bend's form (and 2 more)
3 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- fd873bb83 jyviko: sew: an edge folded across a bend gets a Hermite pcurve on the bend's form
- c376e8403 jyviko: step: imported faces and edges on their NURBS forms
- 69702833f jyviko: solidcraft-smlib: ellipse edges on their NURBS form, as circles are (fork 0c5868e)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-23 18:20:36 -04:00
jyviko b11e66e606 Wave 220/509: sew: faces and edges on their NURBS forms, their pcurves exact (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- c5dbf879a jyviko: brep: exact pcurves of forms: cut on planes, along the parameters of spline faces
- a4180ab42 jyviko: sew: faces and edges on their NURBS forms, their pcurves exact
- 57080f88c jyviko: fixup! sew: faces and edges on their NURBS forms, their pcurves exact
- 76a254137 jyviko: sew: a circle on a revolved face is labelled on that face's frame

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-23 17:04:39 -04:00
jyviko c2a1e7524e Wave 219/509: brep: forms on their frame's quarter grid, across the seam (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- f070eee2b jyviko: brep, kernel: a face's side is read on its NURBS form (#4149)
- 58f60adbf jyviko: kernel: an assembled face keeps its NURBS form
- 807010c49 jyviko: brep: the NURBS forms of lines, circles, ellipses, cylinders, cones, spheres and tori
- f370d1e42 jyviko: brep: forms on their frame's quarter grid, across the seam

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-23 16:34:50 -04:00
jyviko 7b19f68368 Wave 216/509: brep, kernel: code that reads an edge's angles takes them from the circle, code that evaluates takes the NURBS form
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 6892ceac7 jyviko: brep, kernel: code that reads an edge's angles takes them from the circle, code that evaluates takes the NURBS form

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 17:55:46 -04:00
jyviko 9a508571fd Wave 215/509: brep: an edge on a line, circle or ellipse carries the NURBS form SMLib holds it as (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- b1326e48d jyviko: brep: an edge on a line, circle or ellipse carries the NURBS form SMLib holds it as
- 6adba90e2 jyviko: solidcraft-smlib: circle edges on their NURBS form, SMLib's trims kept on them (fork deec9cb)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 17:35:54 -04:00
jyviko 0de308b21d Wave 213/509: kernel: a tangent chain stops at a smooth edge (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- e6f993fff jyviko: Revert "kernel: merged topology counts no seam edge (a face on both sides of it)"
- 4ea29e307 jyviko: kernel-cases: 818 counts its two cylinders' seams, as every case counts edges
- de0e5bf52 jyviko: kernel: a tangent chain stops at a smooth edge
- 369c897d8 jyviko: kernel, cli: clippy and the cli tests build again

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 16:26:38 -04:00
jyviko 9aedc5faed Wave 210/509: doc, engine, kernel: solid.fillet and solid.chamfer round each picked edge's tangent chain by default (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 84bd2daad jyviko: doc, engine, kernel: solid.fillet and solid.chamfer round each picked edge's tangent chain by default
- d0ff1dcfa jyviko: doc: an extrude's taper without a corner rule picks one per profile
- 5e7aba8df jyviko: loft sections matched to their neighbours
- 2752eee61 jyviko: kernel: merged topology counts no seam edge (a face on both sides of it)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 14:24:15 -04:00
jyviko bfae336ce1 Wave 207/509: brep: a face on a cylinder, cone, sphere or torus carries the NURBS form SMLib holds it as (and 2 more)
3 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- b6a3b31ff jyviko: brep: a face on a cylinder, cone, sphere or torus carries the NURBS form SMLib holds it as
- 2e26e0567 jyviko: solidcraft-smlib: the export reads FACE_NURBS_FORM
- 03db54a23 jyviko: solidcraft-smlib: SMLib at the merged fixes: slice, seam check, analytic revolve, draft corners, blend refusal, union of many, NURBS forms (fork 03c14ca)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 13:34:10 -04:00
jyviko b6dcdd163e Wave 206/509: kernel, smlib: a blend larger than its faces is SMLib's refusal; blends take exactly the given edges (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- bcbb99005 jyviko: kernel, smlib: a blend larger than its faces is SMLib's refusal; blends take exactly the given edges
- 13e49e069 jyviko: engine: solid.fillet and solid.chamfer say they blend exactly the edges given

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 09:11:27 -04:00
jyviko 3557e3c563 Wave 205/509: kernel: union_all, one SMLib union of many bodies checked once, history over every operand (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 2ffbbc74d jyviko: step: a cone within the file's uncertainty of its limit plane over the face is read as that plane
- 0185ccc1e jyviko: solidcraft-smlib: Brep::union_all, the union of many bodies in one SMLib call
- 0213c3dfa jyviko: kernel: union_all, one SMLib union of many bodies checked once, history over every operand
- 83d965f30 jyviko: doc: a join into one target and an intersection's tools are one union_all call

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 08:46:55 -04:00
jyviko 542715de62 Wave 203/509: kernel: a tapered extrusion closes its corners by a rule, preserving curvature by default
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 384c5866f jyviko: kernel: a tapered extrusion closes its corners by a rule, preserving curvature by default

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 09:11:24 -04:00
jyviko 6354e472ed Wave 202/509: kernel: a raised band reads its arcs' circles from the record (and 3 more)
4 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 09c979a4b jyviko: brep: a full circle in a profile is one closed arc
- 8e6c24aeb jyviko: kernel: a raised band reads its arcs' circles from the record
- d10041743 jyviko: kernel: emboss reads a wall's span from its arc's interval
- 0414f5a7a jyviko: kernel: assemble's unused CurveEval import goes with edge_point

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 13:14:56 -04:00
jyviko 82f1404518 Wave 200/509: kernel: planar sheets are built one simple loop at a time (and 2 more)
3 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 44744d3aa jyviko: kernel: a face's boundary runs along a pole as its pcurves say
- 01845c189 jyviko: kernel: planar sheets are built one simple loop at a time
- 529c2cf04 jyviko: solidcraft-smlib: SMLib's area counts the faces between solid and void only (fork 8400690)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 08:43:57 -04:00
jyviko a59ec94b02 Wave 198/509: brep: one basis-derivative routine, bspline::basis_derivatives (and 1 more)
2 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 78937d1db jyviko: brep: one basis-derivative routine, bspline::basis_derivatives
- afce22bb6 jyviko: solidcraft-smlib: mass properties of any body, by its material regions (fork 311946c)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 08:14:27 -04:00