• Joined on 2020-12-11
aj pushed to master at aj/OpenNest 2026-03-17 10:28:00 -04:00
d4222db0e8 fix: correct Size width/length ordering and add CLI docs to README
aj pushed to master at aj/OpenNest 2026-03-17 09:44:44 -04:00
21a16e5b7c feat(ui): move add/remove plate buttons to header bar
4616f077d5 feat(ui): move plate navigation from toolbar to header above PlateView
Compare 2 commits »
aj pushed to master at aj/OpenNest 2026-03-17 09:15:44 -04:00
d210d29554 docs: add keyboard shortcuts to README
aj pushed to master at aj/OpenNest 2026-03-17 09:01:09 -04:00
dde07fc256 merge: resolve polylabel conflicts, keep remote version with hole support
788996abcf docs: add screenshots to README
224fbde19a feat: add polylabel algorithm for part label positioning and README
a0865405e2 refactor(mcp): use shape library in InputTools
6e5471271d feat(core): add RoundedRectangleShape
Compare 17 commits »
aj pushed to master at aj/OpenNest 2026-03-16 22:50:45 -04:00
9d40d78562 feat(ui): add remnant viewer tool window
896cb536dd feat(console): add --engine CLI flag to select nest engine
493f7f837a fix(engine): sort hull edge angles by longest edge first
c94beb51a4 feat(engine): try interlocking pair patterns in remainder strips
c2c723f86f refactor(engine): clean up unused imports after extraction
Compare 29 commits »
aj pushed to master at aj/OpenNest 2026-03-16 14:33:45 -04:00
66050c68f6 feat(engine): add CompactIndividual to Compactor (disabled in strip nester)
aj pushed to master at aj/OpenNest 2026-03-16 14:33:20 -04:00
195e29da52 fix(ui): rotate grouped parts around shared center with dedup
0b9a42e84c fix(engine): use smallest remaining part as minimum remnant size
00ccf82196 fix(engine): apply shrink loop to remnant fills in StripNestEngine
a41a08c9af fix(engine): use local quantity tracking in StripNestEngine remnant loop
3d23943b69 fix(engine): use RemnantFinder for iterative remnant filling in StripNestEngine
Compare 35 commits »
aj pushed to master at aj/OpenNest 2026-03-16 01:29:37 -04:00
48d4220199 docs: add lead-in assignment UI design spec
ff496e4efe fix(engine): track multiple free rectangles in strip remnant filling
1a3e18795b fix(ui): reverse sequence order so cutting starts near origin
507dff95b8 fix(ui): use LeastCode sequencer and fix AddRange double-enumeration
a1f32eda79 feat(ui): wire Plate→Sequence menu to PartSequencerFactory
Compare 72 commits »
aj pushed to master at aj/OpenNest 2026-03-15 10:47:40 -04:00
cab603c50d docs: fix spec issues from review — non-sequential stepper, font caching, sizing
40d99b402f docs: add NestProgressForm redesign spec
45509cfd3f feat(ui): add nested dimensions and area to progress window
8e0c082876 refactor(ui): optimize PushSelected with directional filtering and lazy line computation
3c59da17c2 fix(engine): fix pair candidate filtering for narrow plates and strips
Compare 26 commits »
aj pushed to master at aj/OpenNest 2026-03-14 14:42:02 -04:00
acc75868c0 refactor: extract training data collection into OpenNest.Training
74272bea80 feat(engine): add perimeter-to-area ratio to part features
Compare 2 commits »
aj pushed to master at aj/OpenNest 2026-03-14 14:40:54 -04:00
bf104309b4 chore: ignore SQLite database files
321c476b8b feat(engine): add ML feature extraction and brute-force runner
1db51b1cce feat(ui): add elapsed timer to nest progress form
10f9b5357c fix(engine): compute unused area from actual part areas
a9aaab8337 refactor: use ShapeProfile perimeter for boundary and intersection
Compare 17 commits »
aj pushed to master at aj/OpenNest 2026-03-13 15:27:24 -04:00
aj pushed to master at aj/OpenNest 2026-03-13 14:32:50 -04:00
13264a2f8d Merge branch 'feature/nfp-bestfit'
9df42d26de perf: replace linear sweep with iterative halving in RotationSlideStrategy
9daa768629 refactor: extract ComputeSlideDistance helpers in RotationSlideStrategy
3592a4ce59 docs: update bestfit spec to iterative halving approach
e746afb57f docs: add coarse-then-refine bestfit sweep design spec
Compare 16 commits »
aj pushed to master at aj/OpenNest 2026-03-13 09:28:05 -04:00
776e9d218c fix(ui): cache offset paths and scale temp parts on zoom
aj pushed to master at aj/OpenNest 2026-03-13 08:49:05 -04:00
501b2553ad refactor(ui): move NestProgressForm UI to Designer file
aj pushed to master at aj/OpenNest 2026-03-13 08:46:22 -04:00
986d298786 feat(ui): replace random part colors with curated palette
9773449563 feat(ui): add FillWithProgress to PlateView, use from ActionClone
fde285484a fix(ui): cancel nesting when MDI child form is closed
98c4c88fc3 feat(ui): add progress support to ActionFillArea and FillArea_Click
09fef203df feat(ui): make FillPlate_Click async with progress and cancellation
Compare 15 commits »
aj pushed to master at aj/OpenNest 2026-03-13 07:36:22 -04:00
09fc8b889e fix: close polygon offset shape and handle nest template load failure
2216b8553f docs: add implementation plans for best-fit viewer, pair finding, and .NET 8 migration
6ed20a6a48 refactor: switch auto-nest from Pack to per-item Fill with explicit quantity tracking
c68139e15e merge: resolve .gitignore conflict, keep both entries
a084819889 perf: comment out Debug.WriteLine calls in FillLinear
Compare 9 commits »
aj pushed to master at aj/OpenNest 2026-03-13 00:00:58 -04:00
66b3aeafc1 fix: correct inverted quadrant-to-exit-point mapping in GetExitPoint
616575e0ee feat: wire contour re-indexing into ContourCuttingStrategy.Apply()
2b4cb849ba feat: add Shape.ReindexAt(Vector, Entity) for contour reordering
3de44a7293 feat: add Arc.SplitAt(Vector) splitting primitive
b2ff704b73 feat: add Line.SplitAt(Vector) splitting primitive
Compare 17 commits »
aj pushed to master at aj/OpenNest 2026-03-12 22:19:57 -04:00
e4e1d9b5a3 refactor: rename DefinedShape to ShapeProfile
0c395421cd chore: add .claude/ to .gitignore
612b540d9d refactor: rename Size.Height to Size.Length across codebase
7e0edd112a refactor: use 'length' instead of 'height' in nest JSON format
c2534ef08b feat: replace XML nest file format with JSON (v2)
Compare 5 commits »
aj pushed to master at aj/Breehavior-Monitor 2026-03-10 15:29:06 -04:00
733b86b947 feat: add /bcs-pause command to toggle monitoring