matthewtrahan
|
d3d606f9b8
|
ring fade: review fix -- fade the rings only; the axis guide line's opacity is never reset by the gizmo, so scaling it compounded every frame and left the line gone for the session
plugins-latest
|
2026-10-18 15:36:14 -05:00 |
|
matthewtrahan
|
2785cc054d
|
sway (Auto braces): the rotate rings fade back (to 15%) while a brace preview is up and fade in again when it goes -- they sat over the ghost and the side being aimed at; faint, a drag still turns the part. ui/ringfade.js scales the gizmo's per-frame opacity
|
2026-10-18 15:36:14 -05:00 |
|
matthewtrahan
|
5a0aee21cf
|
sway (Auto braces): a click over the rotate rings stands the brace -- the ghost shows there too, a click stands it and a drag still turns the part; a press that snapped a ring (5 deg comes within the 4 px a click allows) is a turn and stands nothing; and off an upright side the dot and crosshair go even with no brace shown (moving onto the top after placing one left them, and a build landing mid-hover left the crosshair)
|
2026-10-18 15:36:14 -05:00 |
|
matthewtrahan
|
d8031cb723
|
sway preview smoothing: review fixes -- the latest place the pointer went decides what a grace does at its end (in Draw, flicking from the side across the part and off it left the cursor dot behind, and coming back onto the part inside the grace hid Draw's own dot and crosshair), a grace cut short by a drop or a hard hide still hides the dot and resets the cursor (Auto kept a crosshair), starting a wall drops a brace still fading in its grace (and its amber), and the first fade frame no longer steps backwards
|
2026-10-18 15:36:14 -05:00 |
|
matthewtrahan
|
acfbed6919
|
sway preview: smoother hover -- the ghost fades in and out (120 ms) instead of popping and a big jump in height cross-fades, a pointer slipping off the side for a moment (an edge, a facet, a gap, the rotate rings) keeps the preview 150 ms before it fades, the label fades, eases after the cursor and holds a min width, the cursor dot eases to amber, capped tops step 1 mm instead of 2, and shorter label text (all five languages). The motion lives in ui/braceghost.js; which brace a click stands is unchanged
|
2026-10-18 15:36:14 -05:00 |
|
matthewtrahan
|
240604ebf5
|
sway (Auto braces): review fixes -- a brace placed or removed by hand in Auto brings up or hides Clear / Remove selected (the controls stayed hidden, so a selected brace showed no way to remove it but Delete), and an orbit drag or the rotate rings drop the brace preview instead of leaving its label where the press was
|
2026-10-18 15:36:14 -05:00 |
|
matthewtrahan
|
eb5650ded1
|
sway: Auto and Full stand hand braces without "+ Add walls by hand" -- with Sway braces ticked, hovering an upright side previews the brace (same ghost and label as Draw) and a click stands it; a click on a brace placed by hand selects it, and every other click still just orbits. The rotate rings and an armed lay or remove keep the pointer first. The Sway braces tooltip drops "In Draw" (de, nl, pt, ar, zh too)
|
2026-10-18 15:36:14 -05:00 |
|
matthewtrahan
|
b5f2f4298a
|
sway preview: review fixes -- removing or restoring an Auto fin refreshes the hover memo (a removed brace no longer refuses the spot), a rebuild or a move off the upright side drops the ghost and its queued frame, the stored spot stays on the face's plane (a reopened session finds the same face), the memo keeps 200 spots, a capped top on a band edge keeps its band count through the save round-trip, cross ribs shear the part once per lean instead of per arm and retry, and a session without settings leaves the new fields as they are
|
2026-10-18 15:36:14 -05:00 |
|
matthewtrahan
|
64f7fb7d61
|
sway: review fixes -- the Tine contact offset field is gone (a positive offset lifts the tines off the part, zero meets it flush; the engine keeps its -0.01 default, the same output as main), Brace walls above starts at 5 cm, tests pin a full-height hand brace, the low-click reason and the cross ribs at the page's settings (two per brace over the start height, closed, clear of the part, no brace or tine lost), and the new and changed strings in de, nl, pt, ar and zh
|
2026-10-18 15:36:14 -05:00 |
|
matthewtrahan
|
ad7e99b188
|
draw: sway braces preview on hover -- an upright side shows the brace a click there stands (ghost + a label by the cursor with its height, or the reason it can't), its top following the cursor and snapping to the whole face in the top quarter; a plain brace runs full height as before the clicked-height cap, a capped one is saved and undone as capped, and a session saved before the cap reopens with its braces full height. swayAtFace takes full, and a refusal names the clicked spot's reason, not the last nudge's
|
2026-10-18 15:36:14 -05:00 |
|
909254
|
07e8807c4b
|
feat(sway): cap drawn braces at click height and add brace calibration
|
2026-10-18 15:36:14 -05:00 |
|
matthewtrahan
|
c1015c4ad6
|
rhino: README says beta -- what's been run in a real Rhino 8 (smoke test, the installed .yak's SupportFins) and what hasn't (the settings dialog, Draw's clicks, slicing an export, Windows)
|
2026-10-18 15:34:39 -05:00 |
|
matthewtrahan
|
df56c9b470
|
rhino: smoke test passes in a real Rhino 8 (18/18) -- STL by FileStl.Read (doc.Import's options dialog hung the run on a Mac); a too-short drawn wall instead of a mid-air one (SupportFinsDraw constrains clicks to the part; the engine builds a mid-air pair); the inch check re-finds the box by id (the old object keeps its pre-scale geometry: 40 inches, the 1 m box that ran V8 out of memory) and rounds piece boxes in mm; a 1 m part gets the memory message and the next run works
|
2026-10-18 15:34:39 -05:00 |
|
matthewtrahan
|
f72af4ea61
|
rhino: the engine's memory is capped under V8's own limit -- V8 out of memory aborts the process, so a part too big for it took Rhino down (a 1 m box, 1.4 GB heap); now mini-racer raises at 85 % of the limit, the user gets the part's size and 'is it at the right scale for the document's units?', and the next run starts a fresh context
|
2026-10-18 15:34:39 -05:00 |
|
matthewtrahan
|
98243976fa
|
rhino: build.py makes a project rhinocode builds -- a full host block (three-part version, os spelled macOS; without it: "saved on Rhino 8.9 or earlier"; the .yak is -any either way) and a publisher email (without one the .yak has no author). Shared files land in shared/ beside 'Support Fins.rhp', which the bootstrap tries; the package keeps its space
|
2026-10-18 15:34:39 -05:00 |
|
matthewtrahan
|
442be5d8b3
|
rhino: first run in a real Rhino 8 -- UnitSystem.None looked up by its .NET name (Rhino 8's pythonnet calls it NONE, so every SupportFins run died on getattr("None")); the Brep-mesh comment says what Rhino gives (float32 vertices, an STL's precision -- UseDoublePrecisionVertices on an empty mesh never stuck)
|
2026-10-18 15:34:39 -05:00 |
|
matthewtrahan
|
a5a0866421
|
rhino: review fixes -- mini-racer pinned to 0.12.4 (Rhino 8's Python is 3.9; 0.13+ needs 3.10; fins byte-identical to 0.14.1 on every fixture STL) and CI on 3.9; rerunning deletes the old overhangs and hidden fins (Delete with ignoreModes: a plain one skips locked layers); a fin mesh Rhino refuses is named in the report; Brep meshes in double precision, min edge in mm; custom / no units refused; Draw meshes the part once per session; smoke checks compare after the weld, units by piece boxes, a surface runs
|
2026-10-18 15:34:39 -05:00 |
|
matthewtrahan
|
68c5f271fe
|
rhino: Rhino 8 plugin (#321) -- SupportFins / SupportFinsDraw / SupportFinsSettings run the site's engine through the shared Python host (mini-racer + numpy pip-installed by Rhino's own # r: lines, one .yak for Mac and Windows); Breps meshed at the site's STEP tessellation, document units to mm and back, one mesh object per engine piece on a Support Fins layer, red/amber overhangs on a locked sublayer, settings from options.json saved in the .3dm; build.py stages a .rhproj and compiles it with rhinocode when Rhino is installed; plain-Python tests in CI, rhino_smoke.py for the real Rhino
|
2026-10-18 15:34:39 -05:00 |
|
matthewtrahan
|
9e87d835ad
|
3mf: plate writer review fixes -- the one-model file pinned by sha-256 of main's output, tests for a PrusaSlicer 2 model beside a Bambu one (each assembly its own model's parts), paint on the second model alone, and the locked form's shared transform; the docs say the shift keeps the spacing and centres the footprint, not the spot it was laid out at
|
2026-10-18 14:21:49 -05:00 |
|
matthewtrahan
|
24e600a14f
|
3mf: several models in one file (writePlate3MF), for a plate of several -- each model keeps its own objects (part, supports, interface, slicer parts, colour table) in an id block past the one before, the slicer configs get an entry per model, and every item one shared bed shift so the arrangement opens as it stood; writeThreeMF is the one-model case and writes the same bytes as before (180 option combinations checked)
|
2026-10-18 14:21:49 -05:00 |
|
matthewtrahan
|
054778cd2b
|
ui: plates review fixes -- a click on the edited plate's part, fins, walls or cut handle is for that plate, not a switch to a bed behind it; a plate left before its fins build keeps the fins it was parked with (same pose only; a new part drops them); deleting an empty plate keeps the last Undo
|
2026-10-18 13:28:24 -05:00 |
|
matthewtrahan
|
c5e6ab0ae6
|
ui: plates, all on screen -- the plates sit side by side in one row (ui/plateview.js), each with its bed and a Plate N label, the ones not being edited showing their part and fins dimmed; a click on a plate in the view or on its tab edits it and the camera glides there; See all pulls back over the row. Deleting a plate or removing a model shows Undo for 10 s before anything is freed; Export all writes one .zip of 3MFs; each plate keeps its section cut and Suggest list
|
2026-10-18 13:28:24 -05:00 |
|
matthewtrahan
|
24ba9b36c0
|
ui: plates review fixes -- the viewer's and printer's settings (nozzle, layer view, rings, mouse preset) stay put across a switch instead of following the plate; Export all locks the tabs while it switches; an import comes back to the plate it was started on (or lands nowhere if that plate was deleted); a multi-file import whose last file fails drops its empty plate; and a plate keeps its stash until its restore succeeds
|
2026-10-18 13:28:24 -05:00 |
|
matthewtrahan
|
85667ff81e
|
ui: plates -- tabs under the top bar hold one model each, with its own pose, settings, drawn walls, removed fins and undo; + adds a plate, x deletes one, several files imported at once go one to a plate, and Export gets All plates (3MF). A switch stashes the live part and its state and restores the other plate's as undo does, so nothing is re-read or re-welded
|
2026-10-18 13:28:24 -05:00 |
|
matthewtrahan
|
489ac0fd04
|
ui: empty plate review fix -- the camera pulls back far enough for the whole plate (half its size left the near corner off screen)
|
2026-10-18 09:59:57 -05:00 |
|
matthewtrahan
|
ebb6a4c3c0
|
ui: empty plate -- after the first part, Remove model (and a drag) show the bare plate with an Import a model button and 'or drop it anywhere', not the intro card, and the camera pulls back to the whole plate; the intro stays for a first visit
|
2026-10-18 09:59:57 -05:00 |
|
matthewtrahan
|
7c53d3bad6
|
ui: Remove model -- the midair-start cones go with the part (main's island markers, rebased onto them)
|
2026-10-18 09:23:30 -05:00 |
|
matthewtrahan
|
85fea24b18
|
ui: Remove model review fix -- forgetSessionNote's doc comment back above it
|
2026-10-18 09:23:30 -05:00 |
|
matthewtrahan
|
b2bdb0149a
|
ui: Remove model -- a button in the stats card takes the part off the plate and brings back the start page, so the next model needs no reload; the drawn walls, removed fins, load arrow, Suggest list, section cut, scale, import note and undo go with it, the fin settings stay
|
2026-10-18 09:23:30 -05:00 |
|
matthewtrahan
|
9ccef01aee
|
islands: review fixes -- the readout's '(+N midair starts)' no longer stacks on every rebuild, removal or Show midair starts toggle (only the line's rewrites append it; builds redraw the card); the red's bare area is read before the island walls, so Full's rows-or-patch pick stays main's; the card says when the island pass ran out of walls, and in Full on a point-seated part with the pad off that none got one
|
2026-10-18 09:05:08 -05:00 |
|
matthewtrahan
|
0115903708
|
web: midair starts card -- a typographic apostrophe in 'couldn’t' (the straight one ended the string: the page didn't load)
|
2026-10-18 09:05:08 -05:00 |
|
matthewtrahan
|
a4355969c7
|
fill: island starts LAST, once the red has its walls, with their own 20-wall budget past the caps -- taken in the same pass they cost the red room (Full scoreboard: snowman mini up -4.6, #18 X-90 -5.8 points); now the red builds exactly as main and the starts only add (no case loses; #18 Y+-45 +6.5, mumble up +0.8). #18 X45 16/16 held with 8 walls (was 16); #257 Y45 3/3. Test name's apostrophe broke the file
|
2026-10-18 09:05:08 -05:00 |
|
matthewtrahan
|
a37a0cf1b8
|
web: midair starts card -- 'couldn't fit one', not 'no room': the fill also gives up on a start for want of an underside to follow
|
2026-10-18 09:05:08 -05:00 |
|
matthewtrahan
|
1f031a4144
|
web: midair starts -- the red cones behind Settings > Display > Show midair starts (off by default, remembered); the readout count stays, and the card says how many Full coverage left without a wall (none: no card), or in Auto and Draw that Full walls them. The page sends its islands with a Full build (041)
|
2026-10-18 09:05:08 -05:00 |
|
matthewtrahan
|
7edd5c2289
|
fill: Full coverage walls the island starts (041) -- each start's points join the leftover red as targets (1 mm2 a point, so one alone passes minGain), held only by a wall top within 2 mm under it (a layer that starts in midair can't bridge to a wall beside it), with lines over a group of starts at that reach; rows take the red only and lose to the patch lines if they leave more starts bare. buildFins finds the starts itself or takes opts.islands (the worker's topo has no vertex ids). #18 at X45: 4 -> 16 of 16 held; X-45 2 -> 13, Y45 1 -> 5, Y-45 0 -> 5 of 6. Auto sweep 864/864 identical
|
2026-10-18 09:05:08 -05:00 |
|
matthewtrahan
|
a0a400bcc2
|
islands: a start touching only amber (a sliver too small for a fin) counts -- a 2 x 2 mm peg end in midair got no fin and only 'may come out rough'; now a cone too (Matthew 2026-10-17). DRO housing: its two 3 mm pin ends under the top show
|
2026-10-18 09:05:08 -05:00 |
|
matthewtrahan
|
9132b1378f
|
islands: review fixes -- runs gathered only where no vertex is lower and the layer-below grid only in cells a start reaches (1.56M-face figure 300 -> 100 ms a pose), a walk past maxFaces still looks for the lower vertex, a long level edge keeps its two ends and a 32-point sample, the flat note stays blank mid-drag after a pose with islands, vid stays out of the worker messages; tests for the 2 mm merge, the area floor and a dimple in a steep wall (041)
|
2026-10-18 09:05:08 -05:00 |
|
matthewtrahan
|
77ec490ba8
|
web: island starts on screen -- a red cone under each spot that starts in midair (drawn through the part; a level edge gets a line along it), '+N midair starts' in the Overhangs readout, and a red card saying nothing holds them yet; a pose with only islands no longer says 'No supports needed'. Found on release, not mid-drag; the vertex graph stays out of the worker messages (041)
|
2026-10-18 09:05:08 -05:00 |
|
matthewtrahan
|
bfd1506d8c
|
islands: find island starts -- a mesh low point (a vertex, or a level edge) whose faces point down, none red, joining nothing lower within a layer and with nothing within 0.3 mm in the layer below, cross-section >= 0.03 mm2 a layer up; starts within 2 mm merge (041). Not used yet. #18 at X45: 16 islands; #257's corners found; 0 on the scanned and mini parts, under 35 ms
|
2026-10-18 09:05:08 -05:00 |
|
matthewtrahan
|
0183f00e5e
|
scale: review fixes -- the field applies on Enter or blur only (no spin buttons, no arrow-key steps: each was a whole reload), the floor is 10 % (below it a fine mesh's vertices merge in the 1 um weld), the factor is rounded to the 2 decimals shown, and a rescale drops the import note's 'restored N supports' (they went with the reload)
|
2026-10-17 21:09:43 -05:00 |
|
matthewtrahan
|
78d11700db
|
ui: Scale -- one uniform percent in the view toolbar beside Rotate; a new scale reloads the part at that size from the part as loaded (never compounded), keeps the pose, scales a 3MF's negative parts and modifiers about the same centre, and clears drawn walls, removed fins and undo as a new file does; the badge reads the percent while it isn't 100
|
2026-10-17 21:09:43 -05:00 |
|
[AX1111YT]
|
6d43c9e2a2
|
feat: update issue templates to include additional platforms for bug reports and generated fins
|
2026-10-17 20:42:12 -05:00 |
|
[AX1111YT]
|
84b25470d7
|
fix: standardize formatting and improve clarity in calibration result issue template
|
2026-10-17 20:42:12 -05:00 |
|
[AX1111YT]
|
50dfe3ed27
|
feat: add issue templates for bug reports, feature requests, and generated fins issues
|
2026-10-17 20:42:12 -05:00 |
|
matthewtrahan
|
54c79acc85
|
spec: ticked Auto can hold less than unticked on a part whose curves clash (lamp shade X30 -2.1%), kept forced
|
2026-10-17 20:33:56 -05:00 |
|
matthewtrahan
|
b9beb8c721
|
curved walls: review fixes -- a traced group's other regions count as served where its walls reach their own faces (they read bare and drew last-resort walls), and a group's wall within a foot + 1 mm of a wall an earlier group swapped in is dropped (stacked surfaces met 0.15-0.43 mm apart on the bean on its side); the spec names the limits (shallow bands give stubs, one bend swaps a whole group)
|
2026-10-17 20:33:56 -05:00 |
|
matthewtrahan
|
5d5debaa1e
|
curved walls: on a jagged overhang the curves trace each region grown across the slivers around it (regions whose growth meets trace and race as one), read the slope over 2 mm, and seed lines until they reach the red themselves -- coffee bean X-45 0 -> 8 curves (held 1305 -> 2674 mm2), on its side X90 10 -> 30 curves with the Auto fill 40 -> 21 walls, and Full keeps them; a second race after the unticked one, so ticking changes nothing where no wall bends
|
2026-10-17 20:33:56 -05:00 |
|
matthewtrahan
|
1be63f6d53
|
curved walls: review fixes -- the 1% slack only when the ticked Full build has a curve (all-straight downhill walls are judged strictly), the readout's line doesn't claim the straight walls hold more (grip or a wedge can decide), and the spec gives the real build-time cost
|
2026-10-17 16:27:50 -05:00 |
|
matthewtrahan
|
810964407e
|
web: the readout says when Full coverage kept straight walls over Curved walls, and that Auto has the curves
|
2026-10-17 16:27:50 -05:00 |
|
matthewtrahan
|
b4e7c31eb6
|
curved walls: in Full coverage the curves stay only if they hold within 1% of the straight build, grip no higher and keep every wedge -- they broke up the fill's rows (coffee bean on its side held 2-5% less); spiral and bust keep theirs
|
2026-10-17 16:27:50 -05:00 |
|