Commit Graph

  • 90bf2a6fab export review fixes -- Export all judges another plate's parked fins against its settings with the page's nozzle (the printer's, the same on every plate): a nozzle changed elsewhere made it write fins built for the old one under the new one's name, and now it switches to that plate as before; an export waiting on parked builds shows the spinner and a second click waits with it; a plate switched away mid-wait exports the plate clicked, or the edited one for Export all; a parked build whose worker and inline builds both fail lands with no fins rather than hold every later build; the edited plate's layer height in a file name is the field's, as the live model's is export-parked matthewtrahan 2026-10-18 22:57:38 -05:00
  • 5a8c3903e8 readout: a figure-like part is told fins won't hold most of it -- over half the red still bare (and at least 25 mm2 of it) puts one line in the panel: 'Lots of small or tucked-in overhang here (N % bare). Try Full coverage; for figures and minis, slicer tree supports often do better.' (in Full: N % still bare in Full coverage). It replaces the plain bare line. Fires on buster, Isaac and the 32 mm zombie upright in Auto, buster in Full; no stress model but the upright torus. Five translations minis-warning matthewtrahan 2026-10-18 22:42:58 -05:00
  • 15acecf8b6 bare line review fixes -- not shown when nothing was placed (a point-seated part with the pad off: 'none possible' already, and Full builds nothing there either); after fins are removed by hand the page measures again against the walls left (built.bare carries its coverage), so a removal can't hide the red it dropped. Test: the re-measure, and the upright-cube check on its own topology auto-bare-area matthewtrahan 2026-10-18 22:51:22 -05:00
  • fcece26bc2 ui: nothing to act on before a part is imported -- Build volume, Overhang, Add fins, Export and the plate + are disabled and the view doesn't orbit until a model is on some plate (again after the last one is removed) disable-before-import matthewtrahan 2026-10-18 22:42:40 -05:00
  • bf10eff3cb export: the plate's 3MF and Export all plates write the parked models as they stand -- their fins are kept to the plate's settings (ui/parkedbuild.js), so no model is made live in turn and the screen no longer flashes 'generating supports' for each; a parked build still running is waited for, and a plate left before its rebuilds landed is still switched to; STL and Fins only write the model being edited; a parked model alone on its plate keeps its saved session matthewtrahan 2026-10-18 22:41:39 -05:00
  • 3148b3e769 readout: Auto says how much overhang it left bare -- built.bare { area, total } (fins/fill.js bareArea: the fill's own leftover measure on Auto's walls, sway feet left out; Full's area is its leftover). The panel line '{area} mm² of overhang (N %) is still bare — Full coverage reaches more' is in plain view, not behind the (i): a 32 mm figure upright held 29 % in Auto and read as done. No geometry change (NOCHECK sweep identical); the measure costs 3-100 ms on 80-2100 ms Auto builds. Five translations matthewtrahan 2026-10-18 22:41:27 -05:00
  • 0dc152dc10 ui text review fixes -- Cutouts sit below the Tines section, not under Placement (the Tines section comes between them); German Draw note reads 'Klicken Sie auf zwei Punkte' main plugins-latest matthewtrahan 2026-10-18 22:21:05 -05:00
  • 610ec33b8c ui text: Draw's instructions and the Calibrate menu say what the panel shows now -- Draw's mode note and the static hint said click a face (Draw takes two points, and a language switch put the old hint back over the live one); the Calibrate rows and docs/CALIBRATION.md pointed at Clearances / Walls sections that no longer exist (Support gap is under Printer, Pad gap and Wide-face coverage under More settings, Cutouts under Placement). Five translations; the old hint's dead keys go matthewtrahan 2026-10-18 22:14:49 -05:00
  • 6040a6601b export note review fixes -- with fins already on (Draw with nothing drawn, or a part with no overhang) it no longer says click Add fins, a button that isn't there and whose toggle would turn fins off; it says the plate has no supports. The menu points screen readers at the note; the CSS comment says where it sits matthewtrahan 2026-10-18 22:20:28 -05:00
  • 500d6a8ce0 export: the menu says when the file would have no fins -- with a part loaded and no fins on the plate, a line over the rows says STL and 3MF write the part alone and to click Add fins first (the landing promises fins baked in, and a first-time user exported a bare part). Five translations matthewtrahan 2026-10-18 22:12:29 -05:00
  • b80d8f004a readout: a capped Full coverage build no longer says 'switch to Auto' -- Auto holds less than Full on every organic part we measured, so the advice made things worse; it now says rotate the part or add a wall by hand, like the uncapped line. All five translations follow matthewtrahan 2026-10-18 22:11:11 -05:00
  • 6448276ec8 ui: plate settings review fixes -- a model parked while its build was in flight is rebuilt (the check ran after stashPart had dropped the build, so its old fins stood as current); a parked build lands only on the stash it began for, not one parked again since in another pose, and replies carry their request's id; a removed model past its Undo lets its mesh go though undo steps name it; Undo passes over a removed model's steps without dropping them, so its toast Undo brings them back; a file loaded in place of one of several models keeps the others' undo steps and the plate's settings; an empty plate shows its own settings, and a model loaded there takes them matthewtrahan 2026-10-18 22:06:37 -05:00
  • a978481644 ui: fin settings per plate -- every fin field, the mode and fins on/off are the plate's, not each model's, so a click on another model keeps them (models.js: the plate holds them while its live model is parked); the parked models' fins rebuild in a Worker of their own when they change (ui/parkedbuild.js: each one's pose, drawn walls and removed fins, under the plate's settings, matching what it builds live), greyed until they land; one undo history per plate, each step naming its model, so Undo edits that model again and never puts back a setting changed since on another; a 3MF added beside other models brings its walls and removals but takes the plate's settings, and says so; walls.js sweepDrawn stands any model's hand-placed supports matthewtrahan 2026-10-18 21:42:00 -05:00
  • 317f4a19a6 ui: several models review fixes -- Add model keeps each model's import note and brings an added 3MF's saved session back (the park had filed the new file's note with the old model and dropped the session); an import or undo during an export waits for it, so the file holds the plate's own models; Undo of a removed model puts it at the free spot nearest the centre when a model added since stands where it was; a model left alone goes back to the plate's centre; Export fins only follows the parked models' fins too; a file that fails to load after Add drops its empty slot matthewtrahan 2026-10-18 14:48:20 -05:00
  • e13d53e723 ui: several models on one plate -- the stats card's Add model puts a file beside the model on screen, at the free spot nearest the bed's centre; a click on a parked model edits it (ui/models.js: the live one parks as a plate switch parks it, and the bed and the other models draw shifted by minus its spot, so every tool still sees it at the origin); Remove model leaves the plate's other models, Undo puts it back beside them; Export writes every model of the plate where it stands, the 3MF as one object (and supports) each; the layer height stays the plate's across its models matthewtrahan 2026-10-18 14:33:52 -05:00
  • 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 matthewtrahan 2026-10-18 14:07:59 -05:00
  • 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 matthewtrahan 2026-10-18 14:03:11 -05:00
  • 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) matthewtrahan 2026-10-18 10:14:39 -05:00
  • 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 matthewtrahan 2026-10-18 09:35:28 -05:00
  • 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 matthewtrahan 2026-10-18 09:26:59 -05:00
  • 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 matthewtrahan 2026-10-18 08:37:17 -05:00
  • 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) matthewtrahan 2026-10-18 08:32:51 -05:00
  • 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 matthewtrahan 2026-10-17 21:49:43 -05:00
  • 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 matthewtrahan 2026-10-17 21:42:30 -05:00
  • 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 matthewtrahan 2026-10-17 21:22:35 -05:00
  • 07e8807c4b feat(sway): cap drawn braces at click height and add brace calibration 909254 2026-10-18 09:31:56 +08:00
  • 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) matthewtrahan 2026-10-18 14:52:57 -05:00
  • 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 matthewtrahan 2026-10-18 14:25:18 -05:00
  • 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 matthewtrahan 2026-10-18 14:25:18 -05:00
  • 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 matthewtrahan 2026-10-18 14:25:08 -05:00
  • 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) matthewtrahan 2026-10-18 14:25:08 -05:00
  • 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 matthewtrahan 2026-10-18 00:03:24 -05:00
  • 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 matthewtrahan 2026-10-17 21:53:32 -05:00
  • 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 matthewtrahan 2026-10-18 14:11:34 -05:00
  • 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) matthewtrahan 2026-10-18 14:08:01 -05:00
  • 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 matthewtrahan 2026-10-18 10:07:43 -05:00
  • 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 matthewtrahan 2026-10-18 09:48:54 -05:00
  • 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 matthewtrahan 2026-10-18 09:11:35 -05:00
  • 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 matthewtrahan 2026-10-18 09:02:16 -05:00
  • 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) matthewtrahan 2026-10-18 09:48:13 -05:00
  • 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 matthewtrahan 2026-10-18 09:41:56 -05:00
  • 7c53d3bad6 ui: Remove model -- the midair-start cones go with the part (main's island markers, rebased onto them) matthewtrahan 2026-10-18 09:19:05 -05:00
  • 85fea24b18 ui: Remove model review fix -- forgetSessionNote's doc comment back above it matthewtrahan 2026-10-18 09:03:10 -05:00
  • 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 matthewtrahan 2026-10-18 08:53:41 -05:00
  • 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 matthewtrahan 2026-10-17 21:09:53 -05:00
  • 0115903708 web: midair starts card -- a typographic apostrophe in 'couldn’t' (the straight one ended the string: the page didn't load) matthewtrahan 2026-10-17 20:50:55 -05:00
  • 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 matthewtrahan 2026-10-17 20:44:26 -05:00
  • 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 matthewtrahan 2026-10-17 19:20:20 -05:00
  • 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) matthewtrahan 2026-10-17 19:19:53 -05:00
  • 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 matthewtrahan 2026-10-17 19:19:53 -05:00
  • 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 matthewtrahan 2026-10-17 16:23:27 -05:00
  • 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) matthewtrahan 2026-10-17 16:09:25 -05:00
  • 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) matthewtrahan 2026-10-17 14:08:22 -05:00
  • 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 matthewtrahan 2026-10-17 14:04:37 -05:00
  • 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) matthewtrahan 2026-10-17 20:57:10 -05:00
  • 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 matthewtrahan 2026-10-17 20:53:01 -05:00
  • 6d43c9e2a2 feat: update issue templates to include additional platforms for bug reports and generated fins [AX1111YT] 2026-10-17 18:27:46 +03:00
  • 84b25470d7 fix: standardize formatting and improve clarity in calibration result issue template [AX1111YT] 2026-10-17 00:16:29 +03:00
  • 50dfe3ed27 feat: add issue templates for bug reports, feature requests, and generated fins issues [AX1111YT] 2026-10-17 00:03:55 +03:00
  • 54c79acc85 spec: ticked Auto can hold less than unticked on a part whose curves clash (lamp shade X30 -2.1%), kept forced matthewtrahan 2026-10-17 19:20:47 -05:00
  • 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) matthewtrahan 2026-10-17 19:15:39 -05:00
  • 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 matthewtrahan 2026-10-17 18:49:00 -05:00
  • 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 matthewtrahan 2026-10-17 14:08:43 -05:00
  • 810964407e web: the readout says when Full coverage kept straight walls over Curved walls, and that Auto has the curves matthewtrahan 2026-10-17 14:05:22 -05:00
  • 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 matthewtrahan 2026-10-17 14:05:22 -05:00
  • f2348000e4 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 island-starts-041 matthewtrahan 2026-10-17 16:23:27 -05:00
  • 1897ea7af3 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) matthewtrahan 2026-10-17 16:09:25 -05:00
  • faca8fff8c 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) matthewtrahan 2026-10-17 14:08:22 -05:00
  • f617c39bdd 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 matthewtrahan 2026-10-17 14:04:37 -05:00
  • b3900fc2b3 ui: the amber small-overhang card shows again -- the German localization (#184) built its English and German text but never set it, so the card was blank on every part with slivers; one tn() with the German in de.js matthewtrahan 2026-10-17 15:25:49 -05:00
  • 708b2dfac9 walls: review fixes -- squat walls narrow too (a 1.2 mm squat wall at 8 lines leant 24deg), a cut wall's bands and strips keep to the narrowed body, and the clearance probe reads the body from the same rise the mesh does on a low tail (044) matthewtrahan 2026-10-17 10:33:04 -05:00
  • 78381dd6d0 walls: a wall too low for its neck narrows its body instead of squeezing the neck flat -- at 8 wall lines a 1.5 mm wall's shoulder leant 28deg, an overhang on the wall's own side (local issue 044); 2-line walls unchanged (864/864 sweep identical), same walls and tines at 0.4x8 and 1.2x4 matthewtrahan 2026-10-17 10:23:36 -05:00
  • f60568538f feat(i18n): add Simplified Chinese web UI translations 494145471@qq.com 2026-10-17 12:44:21 +08:00
  • 2cf5110efb curved walls: review fixes -- Auto's curve fill says the overhang it couldn't reach (and a capped fill), as Full coverage does; the spec names the gaps ticking leaves (no downhill judge, neighbours unfilled, a forced swap may grip higher) matthewtrahan 2026-10-17 09:24:34 -05:00
  • 8ad059484e web: Curved walls' tooltip says it's forced, and the readout counts the walls its fill added in Auto apart from Full coverage's line; spec row for the Auto fill matthewtrahan 2026-10-17 09:16:36 -05:00
  • 999efd5849 curved walls: forced -- ticked, every region tries downhill walls and a region whose walls bend past 10 deg always swaps to them; no whole-build judge; in Auto the fill pass walls what the curves left bare (8 real organic parts: 4 -> 44 bending walls, held never below unticked) matthewtrahan 2026-10-17 09:16:36 -05:00
  • 0d9e2e9243 curved walls: review fixes -- judged against the unticked build, the bend read over 3 mm of line with the extremes trimmed, an empty region still needs RACE_ABS matthewtrahan 2026-10-13 22:10:56 -05:00
  • de94a63a73 web: a Curved walls checkbox (Auto and Full, off by default) -- undoable, saved with the session; the plugins leave it out until the print test matthewtrahan 2026-10-13 21:59:26 -05:00
  • 26c3b3b5c3 engine: curved walls (#25) -- with opts.curvedWalls, a region whose downhill walls bend past 20 deg swaps when they hold as much, at any weight; unset, the race is unchanged matthewtrahan 2026-10-13 21:59:25 -05:00
  • 1a9f820756 site: review fixes -- a reload re-applies the remembered tine direction and pin depth (the field said Vertical while the build laid tines), Layer height hides for pins when nothing else reads it, the Tines recap says resin, and the new strings in de/nl/pt/ar (#309) matthewtrahan 2026-10-17 09:30:20 -05:00
  • 6fe5746a6e plugins: Direction and Pin depth in options.json, so every dialog, the CLI (--tine-dir, --pin-depth) and the MCP server offer resin pins; the report says pins (#309) matthewtrahan 2026-10-17 09:23:54 -05:00
  • 53d89e1628 site: Tines > Direction (Horizontal (FDM) / Vertical (resin)) with a Pin depth field and an untested-on-resin note; the readout counts pins as pins (#309) matthewtrahan 2026-10-17 09:23:54 -05:00
  • 0ee58da580 pins: a Vertical (resin) tine direction -- pins stand up from each wall top across the gap and 0.3 mm into the part, and a wall on the part welds its foot, since a resin print peels each layer off the vat and its supports must be attached (#309); off by default, 864/864 sweep cases byte-identical matthewtrahan 2026-10-17 09:23:54 -05:00
  • d61a613cdb remove fins: key review fixes -- an exact key wins (a #n twin's removal hid its first copy), older and unparseable keys match exactly only, and the net is across 0.4 / along 2.5 mm of the wall plus height within 0.35: a removed fin gone from the rebuild no longer hides the neighbour beside it (Full coverage fill walls sit 0.5 mm apart), at the cost of a few removals coming back (m4 X30 77/84) matthewtrahan 2026-10-16 16:37:30 -05:00
  • da80a6eb48 remove fins: a removed fin stays removed when the support gap changes (045) -- its key matched exactly and held the wall top's z and height, which the gap moves, so 0.2 -> 0.3 brought every removed fin back; now a key takes the nearest fin of its kind and bearing within 1.5 mm (z only a tie-break, so stacked walls stay apart), and older saved keys still match matthewtrahan 2026-10-16 16:06:25 -05:00
  • 5e00c04911 feat: add Dutch language support and option in language menu [AX1111YT] 2026-10-16 23:36:13 +03:00
  • 6c499a93ce Added Dutch language file John 2026-10-16 20:10:21 +02:00
  • a5ac45700f ui: error badge review fixes -- only this site's own rejections count (an extension's don't), a handled worker crash no longer lights it, Escape and other menus close it, Copy looks like a button and ticks, and a noscript line for scripts blocked outright matthewtrahan 2026-10-16 15:38:20 -05:00
  • 974e95241e ui: an error badge -- a red ! in the top bar when the page hits an error, with the message and browser in a panel, so a 'nothing works' report (#237, Brave mobile Shields) comes with the cause in a screenshot; a script that never loads shows too matthewtrahan 2026-10-16 15:34:39 -05:00
  • d1b8ac86b2 ui: Brace tall walls and Plate only read as their names alone -- the muted 'ribs over 10 cm' / 'no supports on the part' after them read badly (their tooltips say it); the plugins' Plate only hint goes too matthewtrahan 2026-10-16 14:23:25 -05:00
  • 1af4867629 tall ribs: review fixes -- a fill wall's line is the surface (no gap added back), a drawn rib keeps clear of Auto's supports and pad on screen, the Draw ghost shows its ribs, the Draw readout counts them matthewtrahan 2026-10-16 10:21:13 -05:00
  • 04e3ee7168 tall ribs: a plan grid of ~1 mm support pieces for the clash check -- fill's 3D box grid cost 4 s on bigplate Y35 (now 0.2 s, same 210 ribs); spec + tests README matthewtrahan 2026-10-16 10:11:41 -05:00
  • dfcaa5c1b9 tall ribs: walls over 10 cm get face ribs at the plate (Brace tall walls, on) -- a user: fins taller than 10 cm wobble; Auto, Full and Draw, last around every support, kept sideClear off the part and other supports matthewtrahan 2026-10-16 10:00:30 -05:00
  • e8c4921900 import: the picker offers model files on Android (#237) -- accept lists the MIME types too, and octet-stream, since Android's picker matches by MIME and knows none of .stl/.3mf/.step/.obj; a file that isn't a model says so instead of a DataView error matthewtrahan 2026-10-16 09:57:56 -05:00
  • bee8efc2b7 check_stl: review fixes -- the inside depth comes from the standoff pass's own samples (a second sampling doubled the judge on big parts: voron housing +269 s), check_props signs its samples with a ray test, and the 0.2 mm is called a sampling tolerance matthewtrahan 2026-10-16 10:20:35 -05:00
  • 7933de2112 check_stl: walls are also sampled over their surface for being inside the part -- a wedge through a channel's lower plate (#254, ~144 mm3 inside) had every vertex outside and passed; past the 0.2 mm gap fails matthewtrahan 2026-10-16 09:52:59 -05:00
  • b65f156d27 tall coupon: review fixes -- the test pins where the face pairs land and a slim+tall wall (ends + a pair), the README says the site's Draw doesn't brace yet and a spine wobble isn't the wall's matthewtrahan 2026-10-16 09:42:50 -05:00
  • ee78237579 tall coupon: plate walls 60-120 mm, bare vs face ribs rising 50 % / 80 % -- a user says fins over 10 cm wobble; BRACE.tallH (off) gives any wall over it a face rib pair every faceStep 30 mm matthewtrahan 2026-10-16 09:10:29 -05:00
  • 1dafafe434 import: an STL or STEP read after a 3MF drops the 3MF's import meta too -- a language switch brought the old 3MF note back over the new part matthewtrahan 2026-10-16 09:55:44 -05:00
  • e700218b31 import: OBJ review fixes -- an inline # comment on a face line read as a vertex ref, a CR-only file's \ continuation wasn't joined, a big file split into millions of line strings (now one scan into growable typed arrays; a file past the string limit says so), and a 3MF's import note outlived the OBJ after it on a language switch matthewtrahan 2026-10-16 09:50:01 -05:00