lucas-aguilar89 and Claude Opus 5.5
cab698bf12
Offset Plane from a planar body face ( #167 )
...
construct.plane.offset now takes a planar face as its base
({"face": [x,y,z], body?, index?, path?}), captured with the same exact
face attachment a sketch on that face uses. The Offset Plane dialog accepts
planar faces as well as origin and construction planes.
A construction plane on a face is resolved through its face anchor when the
timeline is evaluated, so it follows the face when upstream features change
(and after reopening), instead of keeping the plane as it was when picked.
Tests: engine (top and side faces, follows a box resize, survives reopen,
hostile picks are refused without adding a feature) and a UI scenario that
picks a face in the dialog and builds a pad on the new plane.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 10:06:10 -04:00
lillith
874315db8e
fix(sketch): apply Project to complete preselection
2026-10-12 10:05:52 -04:00
lillith
8c13914d6c
Ignore repeated initial sketch points while drawing
2026-10-12 09:30:18 -04:00
lillith
732447d2dc
Fix dialog header chevrons to collapse and restore forms
2026-10-12 09:08:31 -04:00
lillith
db0a2a007a
Apply remaining sketch constraints to complete preselection
2026-10-12 08:48:05 -04:00
ich777
53b092d287
feat: add German (de) UI localization
...
Adds German (Deutsch) as a third UI language, following the procedure outlined in docs/localization.md
2026-10-12 08:10:14 +02:00
bherbruck
ff9653a353
Merge current main into wheel zoom smoothing option
2026-10-11 20:36:16 -04:00
bherbruck
400f200efa
Speed up cold document geometry rebuilds
2026-10-11 20:22:19 -04:00
bherbruck
6dd202d277
Fix desktop launch, app icons and keyboard parameter editing
2026-10-11 19:09:47 -04:00
lillith
16bf3ba593
feat(ui): allow disabling wheel zoom smoothing
2026-10-12 01:07:23 +02:00
lillith
8601e38d4b
fix(ui): restore free Shift-middle orbit
2026-10-12 00:30:05 +02:00
bherbruck
d8beaedfa4
Open Parameters directly and prepare SolidCraft 0.3.0
2026-10-11 17:49:47 -04:00
bherbruck
78aa2aacfb
Resolve #159 against current sketch preselection
2026-10-11 17:23:12 -04:00
bherbruck
8cce89d78a
Merge pull request #189 : add Windows SpaceMouse navigation
2026-10-11 17:04:47 -04:00
bherbruck
6ce472c29e
Integrate current main before app icon merge
2026-10-11 16:48:45 -04:00
bherbruck
3f1b07d35c
Merge pull request #181 from Koschtetnix/feat/tool-select-highlight
...
feat: highlight active tool or dialog in toolbar
2026-10-11 16:45:52 -04:00
bherbruck
f6e7d754e5
Merge pull request #192 : update app and package icons
2026-10-11 16:44:56 -04:00
bherbruck
6c06168fa7
Merge pull request #184 from tbreckle/fix/175-glyphs-clear-of-dimensions
...
fix(sketch): constraint glyphs move off dimension values
2026-10-11 16:44:49 -04:00
bherbruck
af536a7907
Rename displayed product to SolidCraft and add header bug reporting
2026-10-11 16:16:48 -04:00
kenos
ee1b56cac4
feat: add Windows SpaceNavigator navigation
2026-10-12 05:07:44 +09:00
NAX LAB
35555c0b9f
Merge branch 'bherbruck:main' into main
2026-10-11 15:41:26 -04:00
bherbruck
1d3048062d
Merge pull request #178 from 0xlillith/fix/sketch-dimension-placement-preview
...
fix: preview sketch dimensions before the placement click
2026-10-11 15:33:15 -04:00
bherbruck
da56d180bf
Merge pull request #180 from 0xlillith/fix/sketch-point-constraint-preselection
...
fix: apply Coincident, Midpoint and point Symmetry to preselection
2026-10-11 15:32:20 -04:00
NAX LAB
33f0b9e3cc
Updated Logo
2026-10-11 15:28:45 -04:00
bherbruck
ef8f6ca6f9
fix: restore shell and cut wall topology in 0.2.1
2026-10-11 15:17:05 -04:00
tbreckle and Claude Opus 5.5
cb5144b6e2
fix(sketch): constraint glyphs move off dimension values
...
A horizontal or vertical glyph sat beside its line on a fixed side, so a
dimension placed on that side drew its value box on top of the glyph.
A glyph that would overlap a dimension's value now goes to the other side
of its line, or steps along it when both sides are taken.
The scenario `glyphs` check also fails when a glyph overlaps a dimension
value; constraint_glyphs_clear_of_dimensions covers it.
Fixes #175
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-11 21:14:02 +02:00
lillith
cc2ee6a0f9
fix: apply point constraints to sketch preselection
2026-10-11 20:52:48 +02:00
Koschtetnix
9bfd1158d0
feat: highlight active tool or dialog in toolbar
2026-10-11 20:50:43 +02:00
lillith
58c0ed8a90
fix: preview sketch dimensions before placement
2026-10-11 20:45:04 +02:00
lillith
1adb2cd69f
fix: accept two line picks for sketch coincidence
2026-10-11 20:34:04 +02:00
lillith
09bf9cafdf
fix: apply horizontal and vertical constraints to preselection
2026-10-11 18:51:34 +02:00
bherbruck
d9d4dd262d
Merge pull request #155 from EmDecay/fix/147-input-channel-caps
...
fix: cap control requests and refuse file reads that never end
2026-10-11 12:39:09 -04:00
Matt
b2cf19c9fb
fix: cap control requests and refuse file reads that never end
...
The control channel read each request with no length cap, so a client sending
gigabytes without a newline made the server thread allocate until the process
was killed. Read lines against the 16 MiB cap the MCP server already uses, now
one shared constant, answer a longer one with an error and close; close a
connection after eight lines that are not JSON, serve at most sixteen
connections at once, and run at most sixty-four queued requests per frame so a
flood cannot starve drawing.
Every file command checked the size with the metadata and then read to the end.
A character device such as /dev/zero reports a length of 0, so the cap passed
and the read was unbounded; a FIFO blocked the calling thread, which over the
control channel is the thread drawing the window. vfs::read now takes the
caller's cap, refuses anything that is not a regular file before opening it,
re-checks on the handle to close the window between the two, and reads no more
than the cap plus the byte that proves it was exceeded. Callers pass the limits
they already had, and the recovery read and the CLI's own reads go through it
too. `solvecraft-cli eval /dev/zero` and a FIFO now fail at once instead of
never returning.
Fixes #147
Co-Authored-By: Claude Opus 5 <[email protected] >
(cherry picked from commit 4156e8acd11c90c435a54a3b0ccc59991db71b12)
2026-10-11 08:22:07 -07:00
bherbruck
ab05b24dee
Prepare 0.2.0 usability release and refresh desktop demo
2026-10-11 10:55:55 -04:00
bherbruck
0167c358bb
Merge upstream profile picks and flush-pad fixes with adaptive identities
2026-10-11 09:43:16 -04:00
bherbruck
ce46faa19d
Merge pull request #117 from CypherNaught-0x/feat/profiles-by-curve-ids
...
Profiles can be picked by the curves around them, and point picks are stored that way
2026-10-11 09:28:43 -04:00
bherbruck
4e595deff2
feat: preserve adaptive sketch profiles and curved modeling workflows
2026-10-11 09:06:25 -04:00
CypherNaugh_0x
4c466466a2
Merge origin/main into feat/profiles-by-curve-ids
2026-10-11 14:53:08 +02:00
bherbruck
43a02625a2
feat: add smooth interactive axis view and diagonal snapping
2026-10-11 08:51:24 -04:00
bherbruck
6cbcf5c823
Merge pull request #125 from CypherNaught-0x/fix/model-render-section
...
Model renders show an active section with capped cut faces
2026-10-11 08:34:20 -04:00
bherbruck
180c655ded
Merge pull request #129 from 0xlillith/fix/sketch-point-alignment
...
fix: allow horizontal and vertical alignment of sketch points
2026-10-11 08:16:27 -04:00
bherbruck
93ca39c68e
Merge pull request #131 from 0xlillith/fix/sketch-constraint-preselection
...
fix: apply curve-pair constraints to sketch preselection
2026-10-11 08:14:40 -04:00
bherbruck
6d4c031090
refactor: make UI localization extensible and integrate upstream
2026-10-11 07:52:08 -04:00
bherbruck
7e4dd4fd66
Merge pull request #121 from CypherNaught-0x/fix/fillet-keeps-dimensions
...
Fillet and chamfer keep the dimensions of the corner they replace on a virtual sharp corner
2026-10-11 07:12:48 -04:00
CypherNaugh_0x
5a2174899f
Merge remote-tracking branch 'origin/main' into fix/model-render-section
...
# Conflicts:
# crates/ui-egui/src/viewport.rs
2026-10-11 13:12:20 +02:00
CypherNaugh_0x
184e301c46
Merge remote-tracking branch 'origin/main' into feat/profiles-by-curve-ids
...
# Conflicts:
# crates/doc/src/lib.rs
# crates/sketch/src/lib.rs
2026-10-11 13:07:46 +02:00
CypherNaugh_0x
21e0e99c86
Model renders (screenshot with source model, ui.render) show the section the window shows: the CPU renderer drew the cut face on the far walls at their own depth in a plain grey hatch, so the inside of the body, its edges and the grid showed through it and the cut barely read as a section, it had no outline, perspective views cut along a curve, and an open Section Analysis dialog's preview (or a sketch's Slice) was ignored. The cut face now writes the section plane's depth where it is the visible surface (the CPU counterpart of the viewport's stencil cap), takes the viewport's cap tint and hatch, the cut outline is drawn (section_segments moved from the UI to engine::view and shared), world positions and lines are clipped perspective-correctly, and ui.render in the app uses the viewport's section plane
2026-10-11 12:23:57 +02:00
CypherNaugh_0x
c67ad22129
A sketch fillet keeps the dimensions of the corner it rounds: filleting the corner of a spout (a vertical riser and a horizontal top, the top's length dimensioned to the corner and the corner's height from the origin) dropped the height dimension with the corner point and left the length on the shortened straight part, so the top came out a fillet radius too long. Like Fusion, a corner that dimensions or constraints measure to now stays as a virtual sharp corner, a free point held on both curves' extensions (two point-on-curve constraints), with those dimensions kept and a line length to the corner turned into a distance from the line's far end to it; chamfers do the same. sketch.fillet and the chamfers report virtual_corners and moved_to_virtual_corner, and the viewport draws a virtual corner as an open square with dashed extension lines from the curves. Tests: the spout keeps its 80 x 100 size and both dimensions still drive it, the virtual corner survives save/load and undo/redo, a fillet with nothing on its corner leaves no point behind, and nearly straight or folded corners with dimensions never panic
2026-10-11 12:23:22 +02:00
bherbruck
a6bb8fc924
feat: stabilize face attachments and closed spline workflows
2026-10-11 05:32:46 -04:00
CypherNaugh_0x
848e7aec0e
feat: pick sketch profiles by their bounding curve ids so features keep the same region when parameters move the geometry, matching curves cut into pieces, refusing ambiguous or missing picks instead of taking another region, and storing point picks by curves
2026-10-11 10:17:25 +02:00