bherbruck
1a62c4513f
docs: restore the enclosure demo with the 0.2.0 UI
2026-10-11 12:20:48 -04:00
bherbruck
2f78d3ef81
Merge pull request #149 from jyviko/fix/join-merges-met-bodies
...
Join merges every body the tool meets
2026-10-11 11:36:27 -04:00
bherbruck
5affff307e
Merge pull request #150 from bherbruck/feat/usability-integration
...
Ship 0.2.0 usability, geometry safeguards and updated desktop demo
2026-10-11 11:16:24 -04:00
bherbruck
ab05b24dee
Prepare 0.2.0 usability release and refresh desktop demo
2026-10-11 10:55:55 -04:00
bherbruck
a094fa46b5
Merge pull request #138 from bherbruck/feat/curved-sketch-workflows
...
Preserve curved sketch profiles through edits and complete adaptive modeling workflows
2026-10-11 10:00:43 -04:00
bherbruck
0167c358bb
Merge upstream profile picks and flush-pad fixes with adaptive identities
2026-10-11 09:43:16 -04:00
bherbruck
463441a119
Merge pull request #126 from CypherNaught-0x/fix/flush-pad-over-hole
...
Drain pads whose bore is the drain hole's wall join instead of failing (coincident cylinders)
2026-10-11 09:28:59 -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
bherbruck
4c4a0449a4
Merge pull request #134 from bherbruck/feat/axis-view-navigation
...
feat: add smooth interactive axis view and diagonal snapping
2026-10-11 08:51:58 -04: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
d47b5d3a29
Merge pull request #128 from 0xlillith/fix/fuzz-seed-range
...
fix: validate fuzz seed ranges without overflow
2026-10-11 07:58:04 -04:00
bherbruck
736730c398
Merge pull request #122 from CypherNaught-0x/fix/loft-section-order
...
A loft gives the same body whatever the order of its sections
2026-10-11 07:57:49 -04:00
bherbruck
32900813c5
Merge pull request #118 from CypherNaught-0x/fix/boolean-fallback-message
...
Boolean errors say what actually stopped them instead of blaming coincident faces on curved bodies
2026-10-11 07:57:31 -04:00
bherbruck
839966c108
merge: integrate current upstream contribution guidance
2026-10-11 07:57:27 -04:00
bherbruck
6d4c031090
refactor: make UI localization extensible and integrate upstream
2026-10-11 07:52:08 -04:00
bherbruck
413a1fb727
docs: guide agents to show concrete visual context and track integration
2026-10-11 07:16:45 -04:00
bherbruck
420ee723ee
Merge pull request #124 from CypherNaught-0x/fix/shell-four-face-corner
...
Shell works where four or more flat faces meet at a corner
2026-10-11 07:13:42 -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
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
bherbruck
c11fc79288
Merge pull request #119 from CypherNaught-0x/fix/boolean-shallow-slope
...
Booleans across a floor that falls a degree or two no longer reject correct results
2026-10-11 07:11:35 -04:00
bherbruck
d9f7473ceb
Merge pull request #115 from astrojhgu/main
...
build: NixOS flake for the dev shell and the app package
2026-10-11 07:11:04 -04:00
bherbruck
4b35484052
Merge pull request #127 from 0xlillith/docs/testing-ci-profile
...
docs: align testing guide with the CI profile
2026-10-11 07:10:15 -04:00
bherbruck
a6bb8fc924
feat: stabilize face attachments and closed spline workflows
2026-10-11 05:32:46 -04:00
bherbruck
c1d819f235
feat: preserve body history and placed modelling workflows
...
Record ownership transfers in the timeline so earlier Join/Cut membership,
world placement, machining data and styles survive component moves, edits,
independent copying, undo and reopening. Preserve pending positions in history
snapshots and keep constructor transfers ordered during feature redefinition.
Retain shallow sheet pockets and exact planar intersection islands through
unfold/refold, with depth-aware flat previews and DXF export. Store explicit
3D wire coordinate spaces and migrate known legacy provenance without moving
saved points or analytic fits.
Infer unique eligible cylindrical Emboss targets, align Revolve manipulators
with actual extent geometry, and discard obsolete preview errors after input
correction. Certify constructed and immutable imported face styles using exact
source metadata while preserving legacy face names. Upgrade designs to format10
with bounded validation and geometry-preserving legacy migration.
2026-10-11 03:59:12 -04:00
bherbruck
0398a813c8
feat: strengthen sketches, feature editing, and independent assemblies
2026-10-11 02:44:31 -04:00
bherbruck
07932d0f42
feat: preserve modeling intent across sketches, assemblies, and fabrication
...
Persist typed sketch dimensions and bounded ordered configuration rules in format 8. Use exact occurrence paths and source identity for editing, movement, appearance, and mass. Preserve sheet material regions through cutting, folding, and exact DXF export; retain nested cavities and material islands.
Validation: cargo xtask ci passed, including 368 engine tests, 178 UI tests, 68 UI scenarios, 136 kernel tests, and the 10-crate wasm check. Actual preview workflows and legacy format-7 origin-corner reopening were inspected.
2026-10-11 01:28:01 -04:00
bherbruck
d71bdb78ec
feat: strengthen modeling, configuration, and assembly workflows
...
Preserve linked sketch identities through deterministic face projection and resizing. Fix origin-corner picking, persistent inline navigation, appearance editing, configuration styles, component properties, contact sweeps, sheet exports, analytic STEP offsets, and bounded rolling-ball fit accuracy.
Validated with full cargo xtask ci, native workflow screenshots, repeated enclosure replays, and analytic geometry regressions.
2026-10-11 00:37:26 -04:00
bherbruck
22672585c9
fix: join connected solids at exact edge contacts
2026-10-10 23:11:02 -04:00
bherbruck
fc8b71956c
fix: reject planar joins that displace original faces
2026-10-10 22:53:44 -04:00
bherbruck
74fed469dc
fix: deploy docs web and Flatpak through one Pages workflow
2026-10-10 21:59:18 -04:00
bherbruck
efa6706226
Release SolveCraft 0.1.6
2026-10-10 21:43:21 -04:00
bherbruck
c1b6478ab5
fix: join additive extrusions and merge coplanar faces
2026-10-10 21:31:19 -04:00
bherbruck
17e8e3eff2
Merge pull request #109 from CypherNaught-0x/fix/timeline-modifier-highlighting
...
Highlight fillets and other modifier faces from the timeline
2026-10-10 20:56:59 -04:00
bherbruck
4b7e1d317d
fix: load designs off-thread and cache recent thumbnails as PNGs
2026-10-10 20:55:14 -04:00
bherbruck
b375c2a92a
Merge pull request #108 from CypherNaught-0x/fix/basin-rim-blends
...
Fix fillets and chamfers around sloped pocket rims
2026-10-10 20:05:45 -04:00
95ae096265
Restore minimal view-cube turns and drag-to-orbit
...
Recover N3MI-DG's TOP/BOTTOM heading and drag-to-orbit contributions
from PR #101 , adapted to the existing 14-target cube. Add Y-up/Z-up
regressions, navigation ownership and dialog blocking coverage.
Original heading commit: c28e780f52
Original orbit commit: f30b30be6e
Source: https://github.com/bherbruck/solvecraft/pull/101
Co-authored-by: N3MI-DG <david1985gray@gmail.com >
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-10 19:50:31 -04:00
bherbruck
683d45c28d
Release SolveCraft 0.1.5
2026-10-10 19:34:26 -04:00
bherbruck
13dd4566ce
Merge pull request #102 from CypherNaught-0x/fix/chamfer-sloped-rims
...
Fix chamfers on sloped end faces and enforce rim clearance
2026-10-10 19:28:48 -04:00
bherbruck
1a1838c114
Merge pull request #106 from N3MI-DG/view_cube_label_size
...
View cube: larger face labels
2026-10-10 19:15:10 -04:00
bherbruck
e3ee1b359e
Fix cubic input-name repair when loading large designs
2026-10-10 19:04:19 -04:00
bherbruck
feaed2e3f6
Merge pull request #97 from CypherNaught-0x/fix/dimension-measured-after-solve
...
sketch.dimension reports the measured value after solving
2026-10-10 18:49:25 -04:00
bherbruck
31dadcee63
Add nightly prereleases at midnight Eastern, skipping unchanged commits
2026-10-10 18:26:06 -04:00
bherbruck
4ac803ab52
Release SolveCraft 0.1.4
2026-10-10 18:21:13 -04:00
bherbruck
63fd838f55
Fix hover highlight flicker during viewport navigation
...
Resolve hover before rendering and suppress it throughout navigation gestures and animated views. Closes #92 .
2026-10-10 18:14:53 -04:00
bherbruck
71a4f3061b
Fix document and toolbar tab styling
2026-10-10 18:00:37 -04:00
bherbruck
6f16b31771
Fix viewport input leaking through dialogs
...
Use egui pointer ownership for viewport navigation and picking, view-cube
interaction, and sketch-dimension hover. Cover scrolling, model selection,
and cube interaction under floating dialogs, including after they close.
Shield constraint glyph and move-gizmo highlights from overlapping UI too.
Clear strict Clippy warnings and use the same saved path in the recent-file
scenario on Windows and Unix.
Fixes #87
2026-10-10 17:34:14 -04:00
bherbruck
acf4669f73
fix: select complete circular rims and curved surfaces in 3D
...
Group kernel pieces across circular rims and hidden surface seams for hovering, selection, dialogs, and measurement. Preserve physical references and cover full-item toggling and picking with regression tests.
Fixes #88
2026-10-10 17:13:36 -04:00
bherbruck
e042a7b555
ci: cache native Linux test compilation with sccache ( #93 )
...
* ci: cache native test compilation with sccache
* ci: preserve workflow line endings
2026-10-10 17:07:18 -04:00
bherbruck
d6cdec40da
Fix modelling regressions and reconcile WIP UI work
2026-10-10 15:37:00 -04:00
bherbruck and Claude Opus 5.5
b1ec9fc1ce
Release: drop the riscv64 Linux build
...
The cross-built riscv64 binary can't run on the x86_64 runner, so the packaging step that runs the CLI
failed and blocked the whole release. RISC-V users can build from source; the opt-in RISC-V compile
check in ci.yml stays.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 17:24:10 +00:00
bherbruck and Claude Opus 5.5
524ef6b8c2
The up axis preference (Preferences > Design, ui.prefs up_axis) turns the view: the camera, home view, ground grid and orbit follow it, at startup too
...
Fixes #3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 17:13:07 +00:00
bherbruck and Claude Opus 5.5
74f70614cc
Section Analysis: cut faces in their body's colour (tinted toward the cap colour) and hatched; snapshots show the section too (the cut part removed, hatched cut faces)
...
Fixes #51
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 17:05:23 +00:00
bherbruck and Claude Opus 5.5
c90070c497
Agent cursor speed: a slider from 1× to 5× with Instant at the far right. Instant no longer breaks: the command runs at once (as with the cursor off) and the pointer jumps to where it acted, with a click ripple. ui.agent_cursor speed takes 1–5 or "instant"; saved "slow" and "normal" read as 1×. Scenario covers 1×, 3× and Instant against the cursor-off result
...
Fixes #79
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 16:56:30 +00:00
bherbruck and Claude Opus 5.5
5ec6d3562e
Version 0.1.3
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 16:42:41 +00:00
bherbruck and Claude Opus 5.5
448ea769eb
CI builds tests and lints with a ci profile instead of --release
...
Light optimisation (deps at 2), line tables only, no LTO, debug assertions off (truck's debug-only
checks reject valid geometry, the only reason tests used --release). Cold full `cargo xtask ci`: 14 min
with all 647 tests passing; the oracle, step-corpus and app builds stay on --release.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 15:48:43 +00:00
bherbruck
365879c722
Merge pull request #72 from bherbruck/fix/riscv64-apt-sources
...
Split PR CI, make cross-compilation opt-in, and fix RISC-V APT
2026-10-10 10:30:19 -04:00
bherbruck
ba0f683e89
ci: separate native tests and lint, make cross checks opt-in
2026-10-10 09:56:31 -04:00
bherbruck
e5ef451214
fix(ci): configure Ubuntu ports for RISC-V dependencies
2026-10-10 09:33:08 -04:00
bherbruck
b314e3f175
fix(ci): configure Ubuntu ports for RISC-V dependencies
2026-10-10 09:33:04 -04:00
bherbruck
cf1ab075ec
Merge pull request #65 from N3MI-DG/fix/view-cube-edge-on-flares
...
View cube, move triad and Offset Plane preview: no flashing lines while orbiting
2026-10-10 09:32:27 -04:00
bherbruck and Claude Opus 5.5
be095132b9
Re-land of the shell branches on the renamed ids ( #6 ): the occurrence Move window goes through frame.rs like every window
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 07:19:58 +00:00
bherbruck and Claude Opus 5.5
8b60d77dad
Scenario s40 (toolbar customisation survives a restart) runs now
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01AS5Tn3xieewUSg3uxrMVdL
2026-10-10 07:19:58 +00:00
bherbruck and Claude Opus 5.5
5f45f0789f
Status bar: commands by their labels ("Fillet done", "Shell: offset must be …") instead of internal ids
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01AS5Tn3xieewUSg3uxrMVdL
2026-10-10 07:19:58 +00:00
bherbruck and Claude Opus 5.5
4812ec6c0b
Toolbar customisation: a command's menu (right-click a toolbar button, a panel drop-down row or an S box row) pins it to the toolbar, removes it or pins it to the S box's favourites; drag buttons to reorder within and between panels (drop line); Reset Toolbar; per workspace and tab, kept with the preferences, exported and imported with the keyboard shortcuts. Workspace switcher spans the toolbar's height and opens the workspace menu (Design; the others coming later)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01AS5Tn3xieewUSg3uxrMVdL
2026-10-10 07:19:58 +00:00
bherbruck and Claude Opus 5.5
b5e74030c0
Occurrence Move/Copy uses the shared move triad (arrows, plane squares, rings, ball; snapped): distances and X/Y/Z angles, turning about the occurrence's starting origin, pending until Capture Position
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01AS5Tn3xieewUSg3uxrMVdL
2026-10-10 07:19:58 +00:00
bherbruck and Claude Opus 5.5
9d3cbb4acc
Browser fold arrows: each row is one widget with a stable id, and where the click lands decides what it does (fold arrow with padding, eye, radio, or the row), so an arrow click toggles without also selecting or picking the row or starting a drag; Collapse/Expand tips; ui.at {browser|chevron} and ui.browser for automation; scenario browser_chevrons clicks every folder's arrow (document settings, named views, origin, groups, sketches, construction, canvases, components, bodies, the design) and checks the children; the inch-width units test runs now that params reads unit-less lengths in design units
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01AS5Tn3xieewUSg3uxrMVdL
2026-10-10 07:19:58 +00:00
bherbruck and Claude Opus 5.5
fd4d38d31e
Test (ignored until params reads unit-less length parameters in design units): a bare inch width stays 50.8 mm when the design goes metric
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01AS5Tn3xieewUSg3uxrMVdL
2026-10-10 07:19:58 +00:00
bherbruck and Claude Opus 5.5
535bd5dfff
Section Analysis visuals: the cut faces are hatched at 45 degrees in the cap colour, and each body's outline along the cut is drawn
...
Part of #51 (per-body cap colours and the cut in snapshots to follow)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 07:11:40 +00:00
bherbruck and Claude Opus 5.5
794a394b28
Scenario acceptance_lip_on_rounded_rim enabled: the Lip on the enclosure's rounded rim works since #29 's fix
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 07:03:21 +00:00
bherbruck and Claude Opus 5.5
9dd901649c
View cube with Y up ( #3 ): the cube is drawn and clicked in the camera's up-axis frame, so TOP is the world's up; TOP and BOTTOM turn to the standard plan views (yaw 0). Scenario view_cube_y_up; the camera check can test the world direction the camera looks from
...
Refs #15 , #3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 06:55:10 +00:00
bherbruck and Claude Opus 5.5
d1cdc4d061
Silhouette edges on curved surfaces: drawn in the surface shader where it turns away from the eye (about 1.5 px, only on the visible surface, so nothing shows through thin walls), in the viewport and live previews; snapshots draw them too. The back-face outline pass is gone
...
Fixes #48
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 06:45:19 +00:00
bherbruck and Claude Opus 5.5
62746045af
Fillet dialog: middle radii for variable fillets (add, remove, position and radius) and the Smooth toggle
...
Variable type shows a Mid Radius row per point (position along the edge from the start end, 0.01 to 0.99, and a radius expression, with a remove button), an Add Mid Radius button and, with points present, Smooth. They go to solid.fillet as mid and smooth and come back on Edit Feature. Test: the round trip and removing every point.
Refs #9
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 06:15:30 +00:00
bherbruck and Claude Opus 5.5
be18bd6573
Variable-radius fillets through middle points: radii at positions along the edge, straight or smooth between
...
kernel::fillet_variable_points(body, edge, start, [(position, radius)...], smooth): the radius law is a B-spline of the edge parameter (straight pieces, or C1 cubic pieces with Catmull-Rom slopes), and since every section's arc is affine in its radius the blend is exactly a rational B-spline (degree 2 across, the law's degree along) with B-spline contact curves on the faces. The largest radius along the edge decides whether the blend fits. Fillet type variable takes mid: [[position, radius expr], ...] and smooth; middle radii are parameters of the feature (Mid radius) and follow user parameters. Tests: straight pieces against (1 - pi/4) L (a^2 + ab + b^2) / 3 per piece, smooth against the integrated law, either end as start, refusals; engine test with a parameter-driven middle radius.
Refs #9
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 06:06:33 +00:00
bherbruck and Claude Opus 5.5
a7fe0429f0
IGES reader checked against Fusion's IGES exports: 75 of 76 reference parts read back exactly; cone tips read whole
...
`cargo xtask step-corpus --iges` (and `solvecraft-cli step-corpus --iges`) opens every oracle part.igs as File → Open does and compares body count, volume, area and face count with Fusion's measurements, writing docs/iges-import.md. The run found faces closing at an apex (a drill point's cone, a sphere's pole: the seam runs out to the apex and straight back) kept whole and meshed wrongly; they are now split along the iso-line opposite the seam like bands are (18-hole-features and 40-box-sphere-torus pass). The one failure left, 50-sweep-tight-bend, is written by Fusion as five loose, partly degenerate surfaces that Fusion cannot read back as a solid either; documented in the report. Test: a drilled blind hole round-trips through IGES.
Fixes #14
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 05:56:53 +00:00
bherbruck and Claude Opus 5.5
72bc6fb010
A pattern or mirror of a suppressed feature has nothing to copy: its copies go with it and the pattern warns (the acceptance enclosure loses all four standoffs when Standoff is suppressed); scenario acceptance_pattern_of_suppressed_feature enabled
...
Fixes #42
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 05:27:01 +00:00
bherbruck and Claude Opus 5.5
d1428ef27c
UI tests clear the frame's texture changes: no "Dropped TexturesDelta" panic in debug builds
...
drive_value_takes_the_keyboard and boundary_fill_finds_the_cells_and_fills_the_ticked_ones dropped egui's output with texture deltas still pending (epaint's debug check); they clear them as the scenario harness does. All ui-egui tests pass in a debug build.
Fixes #60
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 05:17:12 +00:00
bherbruck and Claude Opus 5.5
7318b98b8d
Preferences: one Fusion-style dialog from the gear at the top right and Ctrl+, (Cmd+,)
...
Pages: General (theme Dark/Light/System, UI scale, units of new designs, autosave, display
precision, the agent cursor), Navigation (Fusion, SolidWorks, Inventor, Alias and Tinkercad
mouse presets, reverse zoom, zoom to the cursor, orbit centre, view-change animation on/off and
speed), Keyboard Shortcuts (the old Shortcuts window as a page: search, rebind, conflicts),
Design (default modelling orientation Y up / Z up for #3 , and the offer to stand up a Y-up STEP
or IGES file: a quarter turn about X as one undoable Move), Graphics, Sketch, Selection.
Changes apply at once; Cancel or Esc puts back what was there when the dialog opened, Apply
keeps them, OK closes, Restore Defaults resets the page. The theme, ground shadow and agent
cursor settings are now kept between runs. File and Help › Keyboard Shortcuts open the page;
the unused docked Preferences dialog is gone. Control: ui.prefs {open, button, stand_up, …}.
Scenario s45_preferences; tests for Cancel/Apply/defaults and standing a Y-up file up.
Fixes #36
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 05:09:03 +00:00
bherbruck and Claude Opus 5.5
132acc9863
Perpendicular Plane (construct.plane.perpendicular {plane, line}): the plane through a straight edge, sketch line or axis, square to a plane or planar face; a line square to the plane is refused (no single answer)
...
Fixes #20
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 05:00:55 +00:00
bherbruck and Claude Opus 5.5
0e2d8efd5c
See-through bodies and faces are drawn back to front: the glass triangles are re-sorted along the view direction when the view turns (more than about 2 degrees), so overlapping glass blends in order. Large triangles that cut through each other can still show a seam (sorted by centre)
...
Fixes #49
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 04:11:10 +00:00
bherbruck and Claude Opus 5.5
a5729f1f97
Constraint glyphs: one per constrained entity, beside it, readable
...
Fixes #43
- Two-entity constraints (parallel, tangent, equal, ...) get a glyph on each entity.
- Glyphs sit beside their entity (offset along its screen normal), step along it when crowded,
with a faint leader when pushed away; 15 px boxes with the toolbar's constraint icons
(H/V stay letters), coloured from the theme's glyph tokens in both themes.
- Hovering a glyph lights both of its glyphs and its curves/points and names the constraint.
- Removes the old duplicate glyph drawer in viewport.rs (it drew a second, green set).
- Scenario expect key `glyphs` ({constraint id: count}, none overlapping) and the scenario
constraint_glyphs_both_entities.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 03:27:42 +00:00
bherbruck
eac7306d59
Merge pull request #39 from dylanmtaylor/ci/flatpak-pages
...
Publish Flatpak repository through GitHub Pages
2026-10-09 22:19:56 -04:00
bherbruck
183301bce9
Merge pull request #54 from dylanmtaylor/feat/riscv-build
...
ci: Add RISC-V Linux build
2026-10-09 21:18:54 -04:00
bherbruck
721c8b96a4
Merge pull request #55 from bherbruck/ci/agent-managed-releases
...
Use agent-managed draft releases from the release branch
2026-10-09 21:17:14 -04:00
bherbruck and Claude Opus 5.5
1e5356e056
Selected and hovered edges, and a selected face's outline, show dimmed where the model hides them
...
Fixes #50
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 00:51:37 +00:00
bherbruck
1c23620bd9
Merge pull request #56 from bherbruck/docs/readme-fusion-introduction
...
docs: introduce SolveCraft as a Fusion 360 reimplementation
2026-10-09 20:23:56 -04:00
bherbruck
2dd540397d
docs: highlight Fusion 360 comparison in README introduction
2026-10-09 20:23:17 -04:00
bherbruck
7a98800699
ci: stage agent-managed releases from the release branch
...
Build drafts from explicit workspace versions, preserve dry runs, and document
agent verification and publication. Reject existing release tags and published
versions instead of publishing on every development push.
2026-10-09 20:18:13 -04:00
bherbruck
88b4c5b883
fix: preserve behavior under new Clippy lints
...
Keep the fixed ray direction explicit and simplify a single-element loop.
2026-10-09 20:18:05 -04:00
bherbruck and Claude Opus 5.5
a3a1d15d02
Test: Project and Include from other bodies (an edge, a face's loop, a silhouette, a 3D circle) follow a parameter edit of that body and are reported lost, not failed, when it is deleted
...
Part of #47 (components' occurrences wait for the frames fix, 62d22e2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 00:14:00 +00:00
bherbruck and Claude Opus 5.5
61f86d073d
Sketch Fillet: several corners at once (points: one radius dimension, the other arcs equal to it); a radius too large for a line corner is a clear error naming the length it needs, and nothing changes; tests for a constrained rectangle's corners (areas exact), line-arc and arc-arc corners, too-large fillets and chamfers, chamfer areas
...
Fixes #46
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 00:14:00 +00:00
bherbruck and Claude Opus 5.5
307ef11c0a
Sketch Trim/Extend/Offset robustness: Extend reaches splines, ellipses and conics (their polyline, then pinned on the curve); Offset refuses a distance its shape can't take (a straight piece overrun by its neighbours) instead of drawing a turned-inside-out copy; adversarial tests for trims (chords, tangent touches, lone lines, collinear overlaps, splines, ellipses, hostile points), extends and offsets (rectangles in and out, slots, splines, a spike, hostile distances), each leaving the sketch sound
...
Fixes #45
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 00:14:00 +00:00
bherbruck and Claude Opus 5.5
ab574952b1
Hidden origin planes and axes are not pickable: Create Sketch only brings the Origin back when no body is shown; origin and construction planes give way to a face or profile at the same depth (a shelled box's floor where the XZ plane crosses it). Scenarios hidden_origin_planes_not_pickable and face_wins_over_origin_plane
...
Fixes #31
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 00:14:00 +00:00
bherbruck and Claude Opus 5.5
67c79ec91c
Lips on rounded, shelled rims: the band along the rim's edge is raised from the body's own faces (kernel::raise_band: the rim face split along the band's exact offset edge, the band's walls swept up from the walls below, a top), since a join can't merge walls that continue each other; grooves cut with a band reaching into the free side so no wall coincides; tests against the band's area times its height
...
Fixes #29
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 00:04:37 +00:00
bherbruck and Claude Opus 5.5
80f5a58806
Re-land the robustness batch on main ( #6 ): fillets running into an earlier round go to blend_corner (any radius) instead of the same-radius undo; the lip and drilled-hole regression tests move into tests/robustness.rs with the new command ids; measuring 5000 faces is checked for its counts, its time in an ignored perf test run alone
...
Part of #6
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
2026-10-10 00:04:37 +00:00