lillith
c3f94ab616
Cover imported STEP colours through edits and round trips
2026-10-12 10:06:33 -04:00
Levon Kirakosyan
c308a1ba7a
build: macOS support for the Nix flake
...
Add aarch64-darwin to the flake systems so packages, apps and both
devShells are exposed on Apple Silicon Macs. The Wayland/X11/EGL
runtime libraries, the /run/opengl-driver search paths, the freedesktop
packaging and the wrapProgram post-fixup are Linux-only and stay that
way: on macOS winit talks to AppKit, wgpu renders through Metal, and
the GPU drivers ship with the OS, so the darwin package needs no
wrapper. x86_64-darwin is deliberately not added: current nixpkgs
unstable no longer evaluates rustc for that platform (26.11
deprecation), so the package would fail on toolchain evaluation.
docs/nix.md: platform list updated, macOS paragraph in the graphics
section, desktop-entry paragraph qualified as Linux-only.
2026-10-12 10:06:03 -04:00
lillith
874315db8e
fix(sketch): apply Project to complete preselection
2026-10-12 10:05:52 -04:00
lillith
56b499e951
Reject invalid explicit axis origins instead of using zero
2026-10-12 09:51:58 -04:00
bherbruck
b4491ac605
Remove premature craft family affiliation claims
2026-10-12 07:14:49 -04:00
bherbruck
13aac4296d
Keep prepared assembly geometry through selection changes
2026-10-11 21:59:33 -04: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
4af2d06007
Integrate PRs #159 , #166 and #174 for 0.3.0
2026-10-11 17:23:30 -04:00
bherbruck
81ef51c6ce
Integrate current project documentation
2026-10-11 17:23:13 -04:00
bherbruck
26b7b7336f
Integrate current project documentation
2026-10-11 17:23:12 -04:00
bherbruck
8539ac1b40
Resolve #166 minimum Rust version and renamed docs
2026-10-11 17:23:12 -04:00
bherbruck
78aa2aacfb
Resolve #159 against current sketch preselection
2026-10-11 17:23:12 -04:00
bherbruck
71cda4e7ee
Use plain open-source CAD wording
2026-10-11 17:15:59 -04:00
bherbruck
7f98dd1c47
Describe SolidCraft as independent parametric CAD
2026-10-11 17:12:16 -04:00
bherbruck
af536a7907
Rename displayed product to SolidCraft and add header bug reporting
2026-10-11 16:16:48 -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
bherbruck
1aedbf6631
Merge pull request #176 from 0xlillith/fix/coincident-line-picks
...
fix: connect closest endpoints when Coincident picks two lines
2026-10-11 15:07:56 -04:00
bherbruck
6f872c7789
docs: restore the original enclosure demo in the updated UI
2026-10-11 15:05:16 -04:00
lillith
cc2ee6a0f9
fix: apply point constraints to sketch preselection
2026-10-11 20:52:48 +02:00
lillith
1adb2cd69f
fix: accept two line picks for sketch coincidence
2026-10-11 20:34:04 +02:00
lillith
36f49811ab
chore: align advertised Rust version with egui requirements
2026-10-11 19:37:06 +02:00
lillith
f2f8a0df57
docs: explain browser saves and local downloads
2026-10-11 19:17:55 +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
bherbruck
1a62c4513f
docs: restore the enclosure demo with the 0.2.0 UI
2026-10-11 12:20:48 -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
b02c5c01f9
Merge pull request #123 from CypherNaught-0x/feat/sketch-tools-return-ids
...
Sketch commands return the ids of the geometry they create
2026-10-11 08:17:05 -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
442c1f134b
Merge pull request #112 from Mithril-3d/feat/i18n-support
...
feat: add extensible offline localization with Japanese UI
2026-10-11 08:01:30 -04:00
bherbruck
6d4c031090
refactor: make UI localization extensible and integrate upstream
2026-10-11 07:52:08 -04:00
CypherNaugh_0x
680c82365e
Merge remote-tracking branch 'origin/main' into feat/sketch-tools-return-ids
...
# Conflicts:
# crates/engine/src/cmd/sketch_modify.rs
2026-10-11 13:30:48 +02: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
bherbruck
f9d61590f3
Merge pull request #120 from CypherNaught-0x/feat/timeline-inspect
...
timeline.inspect shows a feature's editable fields; the timeline.edit format is documented
2026-10-11 07:11:49 -04:00
CypherNaugh_0x
b93d4905ac
Merge remote-tracking branch 'origin/main' into feat/sketch-tools-return-ids
...
# Conflicts:
# crates/engine/src/cmd/mod.rs
# crates/engine/src/cmd/sketch.rs
# crates/engine/src/cmd/sketch_create.rs
# crates/engine/src/cmd/sketch_modify.rs
# crates/engine/src/lib.rs
# docs/book/src/guide/sketching.md
2026-10-11 13:07:50 +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
cc22672041
Sketch commands return the ids of the points, curves, constraints and dimensions they create as created: {points, curves, constraints, dimensions}, worked out in Session::execute from the sketch before and after, so a script can dimension and constrain new geometry right away; ids stay stable and are not reused after a delete (undo rewinds the counters with the design). The MCP execute tool describes the field
2026-10-11 12:23:57 +02:00