📝 Versions & changelog
Every tool has a version. Open a tool to see exactly what changed in each release.
Design generators
Name Keychainv1.32.0
Changelog
- v1.32.02026-09-07
- The textures were lifted into a module of their own, so a second tool never has to reimplement them. Until now only the pattern function itself was reusable — and it genuinely was reused, by the picker's swatches — but neither operation that applies it was: the surface carve was written inside the mesh builder and the wall carve was not exported at all. All three now live in one place behind an interface that says nothing about keychains: the pattern, a carve for any height field, and a carve for the walls of any mesh. The swatch picker is generic too. Tests pin what makes it safe to reuse — that the pattern is pure and repeatable, that it always returns a sane value, that carving only ever removes material and never punches through the surface, and that a texture of ״none״ hands the mesh back untouched.
- v1.31.02026-09-07
- Fixed, urgently: carving the texture into the sides tore the mesh open. Each wall quad had been minting its own intermediate vertices, and two coincident copies owned by different quads pick up different normals — so they were pushed in different directions and the walls tore apart. Measured: 12,410 open edges. A part for printing has to be a closed solid, every edge belonging to exactly two triangles; slicers usually repair such tears silently, which is precisely why this went unnoticed.
- The intermediate vertices are now shared by grid point: one vertex per position, one normal, one displacement. Tests were added that count open edges by position — with the sides carved, across all fourteen patterns at the deepest cut, and on an untextured part as well so the check itself is honest.
- v1.30.02026-09-07
- The texture is now carved into the SIDES as well — of the letters and of the plate — not only their top surfaces. A top surface is a height field, so texturing it is arithmetic; a wall is not. A wall is parameterised by position around the perimeter and height, and it is usually a single quad tall with no vertex in the middle to move. So the wall is subdivided into rows first, and only the rows between the rims are displaced.
- That both rims stay put is the whole safety of it: the top rim is the outline the plate is fitted to and the laser cuts, and the bottom rim is the weld to what is beneath. Grooves live strictly between them — which is also exactly how a real carved groove behaves. Displacement is always inward, along the wall's own normal, so a textured part is never larger than an untextured one.
- Fixed along the way: when the letter walls were subdivided, one of the four edges came out with its winding rotated. Its normal therefore pointed inward, the carving pushed it outward instead of into the part, and the model grew by 0.098mm on one axis. Consistent winding is also what lets a slicer read a mesh as solid, so this was not only a question of size. A test now fails if a textured part grows by even a micron.
- v1.29.02026-09-07
- Fixed: the desktop layout broke because of a change meant for mobile. The grid is two columns — preview and settings — and the notices became a third child of it, so they took the settings column and the settings themselves were pushed to a second row under the preview. The notices belong inside the preview column, not beside it. Desktop is back to two columns side by side.
- Warnings now appear in fullscreen too. Moving them out of the preview so they would not be pinned to a phone screen or cover the model was right — but it left fullscreen with no warnings at all, and fullscreen is exactly where a part gets inspected closely before export. A user hit that: their design was in two pieces and the view they were working in was the one that never said so. A warning about the design follows the design everywhere. The dimensions, print estimate and style hint do not: they describe a part that is fine, they are a scroll away in the normal view, and in fullscreen they are the clutter fullscreen exists to escape.
- The honeycomb pattern was rebuilt to look like honeycomb. It had been three summed cosines, which is a hexagonal FIELD rather than a honeycomb: soft blobs on a lattice, with no wall and no flat cell floor. A honeycomb is not a wave, it is a partition. Each point now snaps to the nearest hexagon centre and its distance is read through a hexagonal norm — the largest of three projections at 0, 60 and 120 degrees — so the edges are straight and meet at 120 degrees, which is what makes a hexagon read as one. The wall is the outer ~18% of the cell, so it has a real width instead of being the crest of a curve.
- v1.28.02026-09-07
- The texture picker became a grid of samples instead of a list of names. Fourteen names like ״quilted״, ״basketweave״ or ״cells״ mean different things to different people, and choosing meant guessing, building, looking and going back. Now you see all of them at a glance.
- The swatches are drawn by exactly the function that carves the model — it was lifted out into one shared place — and at the spacing currently set, so moving the spacing moves the swatches too. A picker that renders its own lookalike is one that will eventually lie about what you are choosing.
- v1.27.02026-09-07
- The preview is pinned on mobile again — but only the preview, and only at a size that leaves room to work. Watching the model change while you move a slider is the whole point of a design tool, so pinning was never the mistake; what was pinned was. Measured before: 784 pixels of 812, 96.5% of the screen, because every notice sat inside it and the canvas was only 41% of the height. Now the canvas and its controls are pinned, the notices and dimensions scroll away with the rest, and the mobile canvas drops to 34% of screen height instead of 42% — at 42% the pinned block came to 54% of an 812px screen and 57% of a 667px one, which is not a settings panel you can work in. Measured after: 378 pixels pinned (47%), 434 for the settings, and the model stays in view.
- v1.26.02026-09-07
- Mobile leaves room for the settings. The preview was `sticky` on mobile and static on desktop — pinned exactly where there is no room for it. Measured at 375×812: the pinned block took 784 of 812 pixels, about 96.5% of the screen, leaving roughly 28 for the settings under it. The intent was good — see the model while you tune it — but the block grew past the point where that worked: every notice the tool accumulated landed inside it, and the canvas itself was only 41% of the height. The preview is now static: scroll past it once and the settings get the whole screen. Measured after: the preview occupies 0 pixels once the settings are in view.
- Every notice moved out of the preview element into its own block below it. They sat inside the preview, which put them inside the pinned region and inside fullscreen — a warning about the design covered the design. They now sit directly above the settings, where the fix for each of them lives, and fullscreen shows the model alone.
- The toolbar was compacted: the long style label and the method chip are hidden on mobile — they are context, not controls, and the same information is already in the panel below. Toolbar height went from 120 to 76 pixels. The 3D / flat tabs may not wrap onto two lines, but the row as a whole may — without that the controls did not stack, they overlapped each other at 375 pixels.
- v1.25.02026-09-07
- The connectivity guard in the puffy style got real teeth. The first version of the floating-parts detector rasterised each contour separately to avoid a false alarm, but that also made a genuine hole in the plate read as solid — so it could no longer catch the very bug it was written for. The false alarm was itself a symptom: the plate had nested contours, and those are now filtered at the source. With a solid plate the even-odd rule is correct, and it still fails loudly if holes ever come back.
- v1.24.02026-09-07
- The "parts are not connected" warning now runs in the puffy style. The warning has existed for a while but was explicitly switched off for this style — the very one that needs it most, since it has no auto-weld. Measured: "בת אל" comes out as two separate parts at any margin width, and so does any two-word name; an emoji detaches too. That shipped with nothing on screen saying so.
- The fix it offers differs from the classic one, because the classic one does not work here: widening the outline is what auto-weld does, and in the puffy style the margin is a plate border that does not close a gap between words — measured, at 4mm it is still two parts. What does close it is the plaque: one rectangle behind everything, so the part is one piece by construction. The button in the warning switches to it.
- v1.23.02026-09-07
- The 0.4mm nozzle check now runs in the puffy style too. Until now it simply did not: the style never asked the engine for it, never returned a result, and the warning rendered only in the classic view — so a decorative font, whose hairline join between two strokes is the classic print failure, shipped without a word of warning, in the one mode that exists purely for 3D printing. It now runs on the same footprint the classic style measures, and the warning appears above the preview. It is shown as a warning only, without the extra preview modes: this view draws a mesh rather than contours, and offering a mode that cannot be honoured is worse than not offering it. Worth knowing: the check measures the plane, so it does not see the texture, which is a change in height — which is why the texture spacing has a hard 1.5mm floor instead.
- v1.22.02026-09-07
- Fixed: an emoji's inner details printed in mid-air. An emoji like 😍 is drawn as a ring — its eyes and mouth are separate pieces inside it — and when the ring was grown into a plate, the space in the middle survived as a hole. The mouth sat over that hole with no plate beneath it. Measured on the plate itself: one hole. My first attempt, unioning the letters back into the body, did nothing — the shape being unioned is that same ring with that same hole; I measured one hole before and after, and removed the dead code. The real fix is to drop the nested contours: in the puffy style the plate is solid and the details sit on it. The keyring hole is added separately and so is untouched.
- Added a warning for parts in mid-air. The geometry self-check has existed for a while but only ran in development and only reached the console, so this shipped silently. Raised pieces with no plate under them are now counted and the number is said on screen. The check itself was also wrong in its first version — it rasterised the plate's contours with an even-odd rule, which treats one contour nested inside another as a void, so it reported the mouth as floating even over solid plate. A false alarm is worse than no alarm, so each contour is now rasterised on its own.
- Fixed: texturing the plate cost the plate its outline. The first version built the whole plate as a height field, and a height field is a grid — so the outline became a staircase at grid resolution. Measured: 2,224 vertices and two Z levels became 197,142 and fifty-five, and every curve that had been smooth — the ring, a round emoji, the border around each letter — came out serrated. The outline is not decoration: the plate is fitted to it, the ring welds to it, the laser cuts it. The plate is now left as exactly the clean extrusion it was, and the texture rides on top as a layer that fades to zero height at the edge — so the stepping only exists where it has no height to show.
- v1.21.02026-09-07
- Fixed: choosing the plaque did nothing in the classic style. The choice did reach the engine, but five of the six rebuilds did not list it in their dependencies — so you changed the setting and nothing was rebuilt. Exactly the same family of fault as the letter spacing: the value flows, the view never wakes up. Fixed in all five.
- The texture can now be carved into the plate under the letters as well as into the letters. The area directly beneath the letters is deliberately left flat: that is where they bond to the plate, and a texture there would turn the joint into a row of gaps instead of a bond, at precisely the point holding the part together. The texture therefore lands only on the visible margin — which is the only place it can be seen anyway.
- Seven new textures from the displacement maps you pointed at: brick, honeycomb, scales, chevron, basketweave, cells and wood — fourteen in all. Every one is a pure function of position with no random source, so the same design exports identically twice and the result cache stays valid. A test now runs all fourteen and holds three properties: each really removes material, none makes the file bigger, and two identical builds agree.
- v1.20.02026-09-07
- The body shape became a choice: the letters' outline (as always, and still the default) or a plaque — a rounded rectangle the letters sit on, with corner-radius and margin controls. The margin is measured from the letters themselves rather than the grown outline, so the number you type is exactly the gap you see. The plaque is substituted before the ring is welded, so the ring, the holes, the dimensions and the plate fitting all work on it exactly as they did on the outline — without each of them having to learn a second body shape. On a plaque the outline width no longer applies, so its settings disappear instead of sitting there doing nothing.
- Cross-section for the puffy style: rounded (as before), chamfer — a straight bevel with a crisp top edge — or flat. On chamfer and flat the centre-line smoothing is switched off, because it would erase precisely the crisp edge that was asked for.
- Texture now covers the whole letter rather than just the crown. It faded by height, so the sides of every letter came out smooth and the texture really only existed on top. It now fades by distance from the edge and gives up only the last 0.8mm — enough to leave the outline and the weld to the plate untouched, and no more.
- Three new textures: knitted (offset rows of stitches), quilted and waves — alongside ribs, dots, woven and crinkle.
- v1.19.02026-09-07
- Texture for the puffy letters: ribs, dots, woven or crinkle, with depth and spacing controls. It adds not one triangle — the dome is already a height grid, so the same points simply sit lower — leaving print time, file weight and the export budget completely unmoved. Two limits keep it manufacturable: the texture is carved inward rather than added on top, so the height you asked for is preserved; and it fades toward the rim, so the outline the plate is fitted to and welded against is never disturbed. Minimum spacing is 1.5mm, below which a 0.4 nozzle can no longer cut the groove.
- The heavy-plate warning in the plate preview is also stated as a percentage now rather than a triangle count.
- v1.18.02026-09-07
- Fixed: letter spacing did nothing in the puffy style — and neither did jiggle, the start/end symbols, or the per-emoji tweaks. The style laid its glyphs out with a hard-coded set of options and simply never passed these through: the controls were on screen, you moved them, and the model did not move. A silently ignored control is worse than an absent one. All are connected now, with tests pinning that they reach the geometry and not merely the types.
- Print-time and filament estimates reached the puffy style. They appeared in every other print mode but not here, because the estimator speaks in flat slabs and a dome is not one. The dome is now cut into eight bands measured off its own height field — the same estimate on the same assumptions, not a softer promise for this one style.
- The heavy-file warning was rewritten in human language. "978 thousand triangles" is a unit from our side of the screen, not yours — it now says what percentage of the allowance the file takes, and so does the message shown when an export is refused.
- The plate-size picker was added to the puffy export. The plate size was already being applied to the file — it just could not be chosen or seen, so a design could be sent oversize with nothing on screen saying so. The STL export is also now explicitly labelled as a single, colourless body, so choosing between it and 3MF is an informed choice.
- v1.17.02026-09-07
- "Roundness" became intelligible: it is measured as a percentage of the letter's own thickest stroke, not in millimetres. An absolute number could not be understood — whether 4mm means "flat top" or "full pillow" depends entirely on how thick that font's strokes are at that size, so the same value gave completely different results on every choice. Now 100% is a full pillow peaking only at the centre of the stroke and 30% is a flat top with a rounded rim — and the same number looks the same on every font at every size. A line under the setting says in words what you will get.
- The letters inflate more truthfully. With a fixed radius, every stroke wide enough reached exactly the same height, so a thin stroke and a thick stem came out equally tall — which no balloon does. Measured against the thickest stroke instead, a thin one never reaches the peak and stays proportionally lower. That is what the eye expects, and it is what was missing.
- v1.16.02026-09-07
- Fixed: the top of the letter in the puffy style was pointed rather than rounded. Height was computed from distance-to-edge alone, and the distance field is not smooth along the centre-line of a stroke — that is exactly where the nearest edge switches sides. The two slopes reached the centre with opposite gradients and met at an angle: a crease, which reads as a sharp ridge instead of a balloon. It got worse the more the dome radius exceeded half the stroke width, which is the normal case. Reshaping the height curve would not have helped — the kink is in the field, not the curve — so the height field is now smoothed, rounding the centre-line into an actual dome. The height you asked for is preserved exactly: the peak is normalised back after smoothing.
- v1.15.02026-09-07
- Puffy-style smoothing is now chosen from the actual part size instead of a fixed number. Triangle count grows with area × resolution², so one value cannot serve both a three-letter name and a full name with a surname: at the previous fixed 8, "אלכסנדרה" produced 583k triangles and "אלכסנדרה ויקטוריה" 1,037k — against a 500k export cap. The tool was happily building files the export then refused. It now picks the smoothest value that still fits: short names stay at exactly 8 as before (200–273k), "אלכסנדרה" steps to 6 (333k) and the long name to 4 (276k). You can still pin a value by hand, and the counter beside the setting shows which was chosen and how many triangles resulted.
- v1.14.02026-09-07
- Designs survive a refresh. The tool kept nothing between loads — worst exactly where it hurts: when the site itself asks you to refresh, the refresh it asked for threw the work away. A local draft is now kept and offered back on your next visit. Offered, not applied — silently restoring last week's name is its own surprise — and the button appears on the method-picker screen, because that is the first screen you come back to.
- A live triangle count sits beside the smoothing setting. Smoothing multiplies triangles almost quadratically — measured on a four-letter name at 42mm: smoothing 4 gives 66k, 8 gives 248k, and 16 gives 978k against a 500k export cap. Until now the only way to discover that was to try the export and be refused. The ceiling depends on the name and its size, so a fixed maximum would be wrong for most designs — the real number is shown, and over the cap a red line names exactly what to lower.
- v1.13.02026-09-07
- Fixed: in the puffy style the outline looked like it didn't surround the letters. We measured the geometry itself — the plate does contain them, with exactly the border asked for (1.6mm by default, on the left and bottom). What lied was the lens: the preview uses a wide lens sitting close, and anything raised spreads outward from it. The puffy letters stand 4.6mm above the plate, which gave 1.18mm of spread plus 0.84mm from the tilt — 2.02mm against a 1.60mm border. The letters could not help but look like they overhung. The puffy view moved to a long lens pulled back to keep the same framing: spread drops to 0.46mm and the frame reads as a frame again. The part itself did not change at all.
- v1.12.02026-09-07
- Fixed: the dark ring around the hole. Once the hole became a real hole, the line that used to mark it was still drawn on top — a dark ring around a hole that already draws itself. Removed: the hole's edge is now the body's edge.
- The puffy style gained three settings the build engine always accepted but the panel never asked for: roundness (how rounded the dome's shoulder is — small gives an almost flat letter, large gives a balloon), smoothing (the raster resolution the dome is built from) and border (the plate width around the letters). The two it did offer — height and base thickness — don't change how puffy it looks, which is why the style read as having no settings at all.
- The puffy view got the same 3D / flat toggle every other view has. It used to be a dead end with no way to reach the flat check, which is most of why it read as a different tool.
- v1.11.02026-09-07
- Fixed: the keyring hole was painted white instead of being a hole. On the flat view that looked right because the page is white — but the 3D view's top face IS that same image, so a white disc was smeared directly over a hole the geometry really had. In openwork mode it was glaring: the letters showed what was behind them, and the one void a keychain definitely has was the only one that didn't look like one. The body is now genuinely punched. The laser export is untouched — there the hole keeps its own separate cut line, so the same circle isn't cut twice.
- Target width reached batch mode — a column per row, plus "target width for all names". A long name and a short one come out the same width, each with its own letter size solved for it. The opposite still works: leave the target empty (or hit "leave sizes alone") and they all keep one letter size at different widths. The two are alternatives, so setting either clears the other.
- The ring panel was rebuilt: one setting per row, each with a small diagram of what it changes. Three settings used to sit abreast, and a label that wrapped to two lines (Hebrew "ring diameter (mm)" does) dropped its own control while its neighbours stayed put, so the row lost its line. Controls now sit in a fixed-width column and a wrapping label moves nothing.
- The ring's position moved up, under the placement it belongs to, and became a nine-box picker with eight positions instead of four — the two bottom corners and top/bottom centre are new. It still snaps to the real edge of the letters at that corner rather than the bounding box, so it never floats above a short letter.
- The outline panel was straightened too: an "auto" switch sat inside its label row, making that label taller than its neighbour so the two controls below no longer lined up. Both switches moved to a row of their own.
- v1.10.02026-09-07
- Target width. Until now you set the letter height and only discovered the finished width after the build, so anyone making a keychain that has to fit a given package was guessing. Now you type the width you want and the tool fits the letter size to reach it. Changing the letter size by hand clears the target so the tool never fights you.
- The achieved size is stated clearly — width, height and thickness — under every preview: flat, 3D and puffy. Thickness appears only where it is known: on a 3D print it is the slab stack (or the dome plus its base plate); on the laser it is whatever sheet you feed the machine, so no number is invented.
- v1.9.02026-09-04
- A long list no longer takes the tab down with it. Every built name used to be kept in full so the pager could flip between them — about fifty names ran to tens of megabytes, and the preview only ever reads ONE of them. Now each name keeps a summary row (a width, a height) plus a size-capped cache of the real results: paging stays instant, and the fifty-first name costs bytes instead of another whole copy.
- Auto-glue no longer looks like a hang. Gluing is a loop: each pass widens the outline a little and rebuilds until the letters weld into one body — and until now it ran with nothing on screen at all. A badge in the corner of the preview now says which pass is running and at what outline, so you can watch it converge. It is painted BEFORE the work starts, not after it.
- Fixed: auto-glue never actually waited for the rebuild. Each pass widened the outline and immediately re-checked the SAME stale result, so the outline raced to its ceiling in one burst of dozens of updates — and on a name that cannot be glued (two words, say) React aborted and took the whole tool down. Each pass now waits for the new build, and the loop stops at the first outline where the letters really do weld instead of jumping straight to the maximum.
- The credit is taken only once there is a file to hand over. A job over the triangle ceiling is stopped before the charge instead of being charged and then handed an error.
- The bed-size picker now draws the design itself on the bed you picked — at its real size, in the spot it will be exported to — instead of answering "does this fit?" only with an after-the-fact warning.
- v1.8.02026-09-04
- The bed/sheet picker was replaced by the single control now shared by every tool: the same printer presets and the same behaviour, plus a warning when the design is bigger than the bed. Saved designs still open with the choice they were saved with.
- v1.7.02026-09-03
- A long list no longer freezes the browser. Every name used to be built in one uninterrupted run with no chance for the screen to update, so from the moment you pasted until the last name the tab looked crashed and your only move was to reload and lose the list. Names now build one at a time, behind a progress bar showing how many of how many are done.
- You can stop partway. A cancel button sits beside the bar and keeps the last set that built successfully — though not during the download itself, where you have already been charged and a cancel would take the credit without producing a file.
- v1.6.02026-08-29
- The "details thinner than a 0.4 mm nozzle" warning was rewritten to explain rather than alarm. It now says in one plain line what this actually means (the printer lays a 0.4 mm line, and anything thinner doesn't come out), how much of the design is affected — and explicitly points you at the "As it will print" button to see the real result before deciding.
- The warning is now graded by severity: under 4% with nothing vanishing completely it shows as a calm tip (💡) saying this is usually no big deal, instead of an amber warning. Over 10% it says plainly that this is worth fixing before printing.
- The fix advice moved into a "How do I fix this?" disclosure, so one message no longer mixes the physics, the number and the solution in a single line.
- v1.5.02026-08-29
- Uploading your own symbol SVG now shows “reading the file…” the moment you pick it — reading a complex file blocks the browser for a few seconds, and until now that looked like nothing had happened.
- v1.4.02026-08-28
- Pick the fabrication method first: an opening screen asks “what are you making?” — laser cut or 3D print — and the tool then shows only that method's controls instead of mixing a laser file and a print file on one screen.
- Laser mode: preview + cut lines, letter type (including the layered glue-on build), stencil bridges, SVG export and batch sheet packing. Print mode: the 3D view, body/letter thicknesses, the puffy style, the nozzle check + print estimate, 3MF export and plate packing.
- Switch method any time from the chip next to the view tabs — your design is kept; a ?output=laser / ?output=3d link (from the tools grid) opens straight in the right method; and a saved design reopens in the method it was made for.
- v1.3.02026-08-28
- Print-time + filament estimate: in print mode the tool now shows roughly how long the print will take and how many grams of filament it needs — without opening a slicer and without switching to the 3D view. It runs on the same geometry the 3MF is built from and updates live as you change size or height.
- In batch mode the total covers every name in the list, not just the one currently on screen.
- The estimate assumes a standard FDM profile (0.4 mm nozzle, 0.2 mm layers, 15% infill, 2 perimeters, PLA); the real time depends on the printer and the profile — ±25% is normal, and the tool says so.
- v1.2.02026-08-28
- Printability check (0.4 mm nozzle) in the 3D view: script fonts break at exactly the hairline that joins two letters, so the tool now measures the body AND the raised letters and warns before you export.
- Three previews: “as designed”, “what won’t print” (the thin strokes marked in red in 3D) and “as it will print” (what the printer really produces).
- Visualisation only — the 3MF and the SVG are identical in every mode, and the laser view never runs the check.
- v1.1.02026-07
- Mobile layout with a sticky preview.
- Flanking symbols and emoji before/after the name.
- v1.0.02026-06
- Name keychain generator launched.
Israel shapes makerv3.3.0
Changelog
- v3.3.02026-09-01
- Fixed: "remove nikud" stopped removing anything. Each area's text was normalised twice down separate paths — one for fitting, one for the word list that is actually drawn. The moment the word list was rebuilt to carry line breaks it came from the raw text, and the stripped copy stopped feeding anything that reached the output. The checkbox went on looking as though it worked.
- There is now one source for an area's text and every consumer reads from it. The stripping also applies to the built-in shapes, which ignored the option entirely.
- Each text area is now its own card carrying that area's name, and its settings header reads "Design · <area>" instead of "this box" — on a three-area shape you had to count textareas to tell which font picker belonged to which line.
- Cleaned up the size presets: one visual element per tile (the plate itself, to scale) instead of an emoji and a plate competing with each other.
- v3.2.02026-09-01
- Text layout is now chosen per text area instead of once for the whole shape. A shape with a verse in the body and an address beneath it has two opposite requirements, and forcing one layout on both meant giving one of them up.
- An area you have not touched keeps following the shared setting, so changing one does not pin the rest. A "follow the shared setting" button puts an area back.
- The choice is shown as two sketches of the result rather than a checkbox: text filling the shape edge to edge, against the lines exactly as typed.
- The size presets are now drawn to scale against each other (55 : 120 : 300) — a keychain beside a wall sign is understood instantly, where a millimetre figure is not.
- v3.1.02026-09-01
- Text always flowed as one paragraph: the engine breaks what you type into words and pours them into the shape, so a line break was swallowed like a space. For a blessing, an address or a verse that changed the meaning. Added a "keep my line breaks" switch — off by default, so existing designs do not move.
- Added size presets by use: keychain 55 mm, car decal 120 mm, wall piece 300 mm. A millimetre figure means nothing until you have held one.
- In reverse engrave the cut outline had disappeared from the preview: the solid burnt field painted over it. The line was always in the file (a laser sorts by colour, not draw order), but on screen the piece looked like it had nothing to cut. Fixed by order, not by adding a second copy — which would have cut the perimeter twice and scorched the edge.
- v3.0.22026-09-01
- Fixed: uploading an SVG into the shape editor drew the shape twice, offset. An uploaded file is normalised to the origin by wrapping it in a translate transform — but the code that read its geometry pulled only the path attributes and ignored the wrapper. The shape was drawn transformed while the body outline derived from it stayed in the original coordinates, offset by exactly the normalisation.
- The failure was completely silent: both layers were individually correct, just in different coordinate spaces.
- Reading geometry out of markup now applies every enclosing transform, including nested groups and a transform on the path itself. Arcs are converted to curves first, since an arc's flags do not survive an arbitrary matrix.
- v3.0.12026-09-01
- Fixed: uploading an SVG into an existing shape in the shape editor could display the old shape and the new one on top of each other. The outline cache was keyed by shape id plus markup length alone — and the editor sends a fixed id for whatever shape is open, so two files of the same length received the first one's outline. Two versions of the same drawing are exactly the case where lengths tend to match.
- The failure was silent: the body layer was drawn from the stale outline while the shape itself was drawn from the new markup, so the preview showed both rather than reporting anything.
- The key is now based on the outline's content, so two different files can never share an outline even when they are the same length.
- v3.0.02026-09-01
- Breaking change: the size you enter now measures the shape itself, not the sheet it was drawn on. Several shapes carry empty margin inside their canvas — the matzah's art fills about 72% of it — and the scale was computed from the canvas, so the margin grew along with the shape. A heart asked for at 200 mm arrived at 156, a pomegranate at 154, a matzah at 144 — while the readout and the dimension arrows both said 200. Nothing warned you; you found out after the material was cut.
- "200 mm" now produces a shape 200 mm tall, for every shape. The reported dimensions and the arrows describe the piece rather than the canvas too — otherwise the fix would only have moved the error to the other side.
- Existing saved designs rebuild at the corrected size and will therefore change. This was done deliberately and with your approval, while the site has no customers yet.
- Measuring the shape reuses a bounding-box routine the project already had, so there are no new database fields and no shape has to be corrected by hand in the admin — including shapes uploaded in future.
- v2.9.02026-09-01
- Fixed: you could not type a number into the size field — only the arrows worked. The field clamped to its minimum on every keystroke, so on the way to 100 the first key "1" was read as 1, pushed straight to 40, and the entry was destroyed. Clearing the field to start over refilled it instantly too.
- The field now holds what you typed while you type, and applies the bounds only when you finish — and a field left empty returns to the value already in effect rather than to the minimum, so clearing it by accident cannot resize your design.
- The same bug was in 16 fields across 9 tools; all of them now use one shared component, and the logic is covered by 11 tests.
- v2.8.02026-09-01
- Fixed: on the heart, the rounded heart and the pomegranate the text came out far larger than the shape and letters were cut off at the edges. The cause: the auto-fit accepted any size — a word too wide for the shape was placed anyway — so it always returned the maximum. A word that has no room at its height now flows down to a wider line, and only when no line can hold it is the text made smaller. The text fits the shape instead of being chopped.
- Fixed: the laser file hid that overflow behind a clip-path. Laser software (LightBurn, RDWorks) ignores clip-path on import, so the screen showed neatly clipped text while the machine engraved the letters hanging off the piece. The laser file is now geometry only — exactly what the machine will run.
- Fixed: text in "cut" mode disappeared entirely from the colour preview. The letters were knocked out of the top layer only, and an identical layer was painted underneath — the knockout now applies to every layer of the material, so the letters read as real holes.
- Fixed: "negative engrave" on a shape drawn from line art (the hamsa) painted only the thin ribbons and left the letters filled, so it looked just like a plain engrave. It now engraves the solid body and leaves the letters as raw material.
- Improved: short text is centred vertically in the shape instead of clinging to its top — except on shapes whose wide part is at the top (kiddush cup, dreidel), where the placement is kept.
- v2.7.02026-08-31
- Fixed: on shapes drawn from line art (the hamsa, for one) the blessing you typed never appeared. The text was in the file, correctly placed and coloured, but it was clipped to the shape — and that shape is a set of thin ribbons tracing the outlines rather than a solid body, so the text was clipped down to hairlines. It is now clipped to the solid body.
- Fixed: the same cause made the shape render as lines on white instead of as material. The preview now paints a solid body in the material colour beneath the linework. The laser file is unchanged: still pure cut and engrave lines.
- Fixed: the ornament (the filigree on the fingers) was painted a dark blue hard-coded in the source, so it was invisible on black acrylic, the default material. It now wears the selected material's engrave colour.
- v2.6.02026-08-29
- The text-region editor for an uploaded shape now has the same tools as the admin editor. It could only mark rectangles; there are now three tools: Rectangle (as before), Free shape — click to add points and build a region in any shape, and Fit to outline, which generates a region shaped like your outline, inset inward.
- Every region is editable point-by-point after it is created, rectangles included: drag a point to move it, click the white mid-edge dot to insert one, double-click (or right-click) to delete one, and drag the region body to move the whole thing.
- Added Undo (up to 40 steps), Simplify points for regions with many points, and a per-region point count.
- Fixed: an uploaded shape landed inside the first premade category, because it was stored with no group and fell into the same unlabelled bucket as admin shapes that have none. It now gets its own group, "My uploads", pinned to the top of the list.
- Fixed: pointer-to-shape mapping was computed from the element box, so on shapes whose aspect ratio differs from the panel the regions landed offset from where you drew them. It now maps through the SVG transform matrix.
- v2.5.02026-08-29
- The tool is a laser tool again. The “what are you making?” chooser and the 3MF export added earlier were withdrawn: 3D here is a PREVIEW of the cut product — a way to look at the finished plaque in the round — not a file to print. The 3D badge on the tools grid is gone with it.
- New — TWO hanging holes. Turn one on at the top and one at the bottom at the same time, each fully independent: type (inner hole or welded external loop), position (top / bottom / custom + drag + nudge), shape, diameter and frame width. A small inner hole up top with an external loop underneath is a valid pair.
- The two holes are checked against EACH OTHER as well: every hole keeps the minimum wall (1.4 mm) both to the edge and to the other hole, two external loops weld into one connected piece — and when there genuinely is no room, the second hole is left out with an explanation instead of shipping a frame with a tear-away sliver in it.
- Speed: switching shape used to block for up to 16 seconds (the hamsa) because outline sampling asked the browser for one point at a time on a path with hundreds of segments. Sampling is now done segment by segment — the same geometry to within a thousandth of a millimetre, 27× faster overall (hamsa 15.9 s → 0.36 s, map 4.4 s → 0.17 s).
- The view tabs now use the same names as the rest of the tools: Preview / Cut lines / 3D, instead of Colour / Laser / 3D-print.
- New — a “Dimensions” toggle in the view toolbar, like every other studio tool: width and height guides in mm around the design.
- “Show text area” is now “Show text boxes” so it doesn't read as a duplicate of the new Dimensions toggle.
- Designs saved earlier reopen exactly as they were: a single hole loads as Hole 1, and the withdrawn export's settings are ignored silently.
- v2.3.02026-08-28
- Hole geometry verified and fixed: an “inner hole” is now guaranteed to sit inside the material — the tool erodes the shape by (hole + minimum wall) and snaps the centre into that safe area, so the hole no longer lands in the empty space between two Magen-David points or out at sea beside the map’s coastline, and never leaves a sliver wall that snaps off. If the shape is too small the hole is reduced, and if even that doesn’t fit it becomes an external ring.
- An “outer hole” is genuinely outside: the ring is seated outside the outline, half-overlapping the nearest boundary point, and welded in with a neck wider than the hole — so the piece cuts as ONE connected part. Previously, with the hole inside the shape, the “ring” was an invisible disc buried in the body, sometimes with a stray spur sticking out.
- New — hole position: top / bottom / custom (drag). The same shape can now take an inner hole or an external ring at the BOTTOM too, and the bottom ring welds upward exactly like the top one.
- An external ring’s frame is clamped to the shared minimum wall (1.4 mm) instead of 0.5 mm, and the tool reports the wall it actually achieved plus a warning when the hole had to be moved or shrunk.
- Preview ↔ export parity: “negative engrave” used to export as an SVG mask, which laser software ignores on import — the exported file was a solid engraved slab with no letters. It is now a single even-odd path, identical in the preview and in the file.
- With negative engrave on, dragging the text and the nudge joystick did nothing at all — the offset is now baked into the coordinates and works.
- The hole’s drag grip sits on the real hole and flips together with “mirror writing” (it used to stay on the opposite side from the hole you could see).
- “Show text area” is a screen guide only and is no longer included in the downloaded colour file.
- v2.2.02026-07-21
- Upload your own shape (SVG) — text flows to fill its outline.
- Two new shapes: a rounded heart and a full pomegranate.
- Text margin is saved with the design and adjustable in the tool; alignment and show-text-area are front-end settings.
- The preview auto-fits so the shape is no longer cut off.
- v2.1.02026-07-21
- Admin-addable shapes: upload an SVG and mark text areas by clicking points — the tool flows text inside them.
- v2.0.02026-07-21
- Text flows to fill the shape — each line justifies to the shape's width at its height (a psalm inside the map, a blessing inside the hamsa).
- Named text regions per shape (more than one supported, for separate text blocks).
- New preview: zoom, drag-pan, fit-to-screen, fullscreen and a layers legend — matching the other tools.
- v1.1.02026-07-21
- Detailed shapes: the real Israel-map outline and an ornamental floral hamsa.
- Your text fills the shape; the hamsa's decoration is engraved around the text window.
- Shape thumbnails in the picker.
- v1.0.02026-06
- Israel shapes generator launched.
Layered SVGv1.12.0
Changelog
- v1.12.02026-09-08
- Dragging the text is smooth now. Every small move triggered a full rebuild — 1.3 to 1.8 seconds measured on a busy file — and each new one superseded the last, which terminated the worker and constructed a fresh one. The drag no longer builds anything: the handle follows your pointer immediately, the position is committed once on release, and one rebuild runs then. Measured: 60 fps during the drag, zero rebuilds while dragging, one after.
- The drag handle is visible. It used to be a hairline ring that appeared on hover — which means invisible on a phone, where there is no hover. It now has a permanent dashed outline and a round grip in the middle, and says "release to update" while you drag.
- The updating indicator explains itself: it was a small spinning circle with no visible text, which reads as a glitch rather than as progress. It is now a labelled badge that says "building the preview…" beside the spinner.
- v1.11.12026-09-08
- Fixed — in "inlay" mode the text column collapsed to a single slice, so choosing colour 2 gave one-colour letters instead of two. The letters are a column of their own standing on the base, not part of the artwork's plane: joining colour 2 builds them from colour 1 underneath and colour 2 on top, whatever the artwork's own colours are doing. "Above everything" gives three: colour 1, colour 2, and the cap in the colour you choose.
- v1.11.02026-09-08
- The text column is now sliced at the stack's boundaries, and each slice wears the colour of the band it stands in. The letters are a column standing on the base, and one tall enough to reach colour 2 necessarily passes through colour 1's band on the way up — painted in a single colour it put its own colour inside that band, and the filament change this whole model exists to prevent came back by the back door.
- "Above everything" now keeps the artwork's colours all the way up the column and adds only one cap in the colour you chose. Previously the entire column was painted in the custom colour, including the part standing inside the artwork's own bands.
- The legend explains the slices rather than listing them: "top text · colour 2" — one row per band, named by the colour it prints in.
- v1.10.02026-09-08
- Text now BELONGS to a layer instead of getting a height and a colour separately. Pick "colour 1" or "colour 2" and the text takes that layer's colour and its band, so every printed band stays one colour and no filament change is added. Choosing height and colour independently is exactly what allowed a dark name to sit inside a brown layer's band: one band, two colours, a swap for nothing.
- "Above everything" is the only option that adds a band — one band, in the colour you choose. The colour picker appears only for it; every other choice takes its colour from the layer. Two lines that both choose "above" share one colour on purpose, because they occupy the same new band.
- Fixed — two colours of the same height collapsed to a single option, so choosing the second silently fell back to "above" while its own button still looked selected. Exactly the case of a file with two fills at the same thickness.
- v1.9.22026-09-08
- The raised text got its height control back. With the file's colours kept the text is always its own layer, but the control was tied to the "text as a separate layer" checkbox and so disappeared — leaving the text stuck at the artwork's height with no way to change it.
- Height is now chosen BY LAYER rather than as a number in the air: "up to colour 1", "up to colour 2", or "above everything". A height that stops part-way up a colour puts two colours in one printed band, which buys a filament change and a purge for nothing. Every option lands on a boundary the model already has, except the last, which adds one clean band entirely in the text's colour. Manual entry stays, and a warning explains the cost when it falls mid-layer.
- In colour mode the default is now the top of the colour stack — the tallest choice that adds no band at all.
- v1.9.12026-09-08
- Fixed — with the file's colours kept, added text vanished from the model. Text is in none of the artwork's fills, so it belonged to no layer and was never built: it survived only in the cut outline and in the silhouette of the base, which looks like a flat recess where the raised letters should be. Text now always gets its own layer, at its own height and colour, resting on the base beside the artwork.
- Keeping colours and "text as a separate layer" are no longer mutually exclusive. Choosing one used to silently cancel the other; both can now be on together.
- v1.9.02026-09-04
- Added a print-bed preview: before you download, you see the model lying on the bed you picked — at its real size, in the spot it will actually be exported to. Until now that question was only answered by a warning, and only once something already did not fit.
- The credit is taken only once there is a file to hand over. A job over the triangle ceiling is stopped before the charge instead of being charged and then handed an error.
- v1.8.02026-09-04
- Added a print-bed size picker: choose the printer you own (Bambu 256×256, A1 mini, H2D, K2 Plus, Prusa, Ender) or type a size, and the 3MF export puts the model in the middle of YOUR bed instead of leaving it in the corner the generator built it in.
- If the design is bigger than the bed you picked, you are told the dimensions while you edit and again on download — instead of finding out in the slicer.
- v1.7.02026-08-29
- The "details thinner than a 0.4 mm nozzle" warning was rewritten to explain rather than alarm. It now says in one plain line what this actually means (the printer lays a 0.4 mm line, and anything thinner doesn't come out), how much of the design is affected — and explicitly points you at the "As it will print" button to see the real result before deciding.
- The warning is now graded by severity: under 4% with nothing vanishing completely it shows as a calm tip (💡) saying this is usually no big deal, instead of an amber warning. Over 10% it says plainly that this is worth fixing before printing.
- The fix advice moved into a "How do I fix this?" disclosure, so one message no longer mixes the physics, the number and the solution in a single line.
- v1.6.12026-08-29
- Fixed: deleting a layer threw an error (same fix as the keychain — both share the geometry engine).
- v1.6.02026-08-29
- Uploading an SVG no longer looks stuck: the previous artwork is dropped at once and a “building the preview…” indicator takes its place — before the heavy file read starts, which can block the browser for seconds on a complex logo.
- During a rebuild (size, text, loop) the existing preview stays interactive and a small corner spinner marks that an update is on the way.
- A file we can’t read no longer wipes the design you had — the previous artwork comes back with the error.
- v1.5.02026-08-28
- Pick the fabrication method first: an opening screen asks “what are you making?” — laser cut or 3D print — and the tool then shows only that method's controls instead of mixing a laser file and a print file on one screen.
- Laser mode: the design preview and the cut-lines view, the layered cut-sheet export and the design SVG with “keep fonts”. Print mode: the 3D view (and “both”), the nozzle check with its three previews, the print estimate and the 3MF export.
- Artwork, text, outline, weld, frames and the colour layers stay shared by both methods — they describe the design itself, not the file that comes out.
- The thin-emoji warning is derived from the 0.4 mm nozzle width, so it now appears in print mode only — on a laser job it was a false alarm.
- Switch method any time from the chip next to the view tabs — your design is kept; a ?output=laser / ?output=3d link (from the tools grid) opens straight in the right method; and a saved design reopens in the method it was made for.
- v1.4.02026-08-28
- Print-time + filament estimate: in print mode the tool now shows roughly how long the print will take and how many grams of filament it needs — without opening a slicer and without switching to the 3D view. It runs on the same geometry the 3MF is built from and updates live as you change size or height.
- Shown on every view except the laser cut sheet, and it counts each colour layer separately.
- The estimate assumes a standard FDM profile (0.4 mm nozzle, 0.2 mm layers, 15% infill, 2 perimeters, PLA); the real time depends on the printer and the profile — ±25% is normal, and the tool says so.
- v1.3.02026-08-28
- Printability check (0.4 mm nozzle): in the 3D views the tool measures which details are too thin to print and warns above the preview — before you download anything.
- Three previews: “as designed”, “what won’t print” (the doomed detail marked in red) and “as it will print” (thin detail dropped) — covering the raised TEXT objects too, not just the artwork.
- The modes are visualisation only: the design, the cut sheet and the 3MF are identical in all of them, and the laser view never runs the check at all.
- v1.2.02026-07-21
- Drag the top/bottom text directly in the preview.
- ‘Keep fonts’ toggle — the design file keeps text as editable text.
- SVG library, zoom and mobile touch support.
- v1.0.02026-06
- Layered-SVG tool launched.
Door & Room Sign Studiov1.7.0
Changelog
- v1.7.02026-09-04
- Added a print-bed preview: before you download, you see the model lying on the bed you picked — at its real size, in the spot it will actually be exported to. Until now that question was only answered by a warning, and only once something already did not fit.
- The credit is taken only once there is a file to hand over. A job over the triangle ceiling is stopped before the charge instead of being charged and then handed an error.
- v1.6.02026-09-04
- Added a print-bed size picker: choose the printer you own (Bambu 256×256, A1 mini, H2D, K2 Plus, Prusa, Ender) or type a size, and the 3MF export puts the model in the middle of YOUR bed instead of leaving it in the corner the generator built it in.
- If the design is bigger than the bed you picked, you are told the dimensions while you edit and again on download — instead of finding out in the slicer.
- v1.5.02026-08-31
- Added batch production: paste a list of names — one per line, or the first column of a CSV — and the tool builds a sign for each and nests them onto laser sheets. Add x5 after a name to repeat it, because an order is usually "ten of these and three of those" rather than a list with the same name typed ten times.
- Every copy goes through exactly the same engine that builds a single sign, with only the text swapped — so a run cuts what was proofed one at a time, not a second code path that could drift from it.
- A sign too big for the sheet is reported by name instead of being quietly cropped; a cropped part looks fine on screen and is scrap in material.
- Each copy gets its own id namespace. Repeating an SVG repeats its ids, and a duplicate id makes every reference in the file resolve to the first copy — so one sign's gradient would be applied to all thirty.
- Nesting uses the same packer that lays out the box generator's parts, so the sheet count shown and the files written cannot disagree.
- v1.4.02026-08-31
- The settings panel moved to the right, matching every other tool, and the preview now sticks to the top on desktop as well — so the design stays in view while the settings scroll past it.
- The shape gallery is gone from the design page. The shape was already chosen on the first step and the chip on the canvas is how it is changed; fifteen shapes listed under a finished design are just more scrolling.
- The preview opens fitted to the pane instead of at a fixed zoom. A plaque wider than the pane used to appear cropped with no hint that there was more of it.
- v1.3.02026-08-31
- The shape is now chosen before designing, on its own step. That is the order the work actually happens in: the outline decides how much room the text has and where holes may go, so choosing it after typing means re-fitting everything.
- The shape can be swapped at any time from the chip beside the fabrication method, and the design is kept — text, font, size, position and colours all carry over. What does not carry over is anything that only described the old shape: hand-dragged hole positions and that shape's own adjustable dimensions. Keeping them would scatter the holes across the new outline and read as the swap having wrecked the design.
- Added reverse engraving in laser mode: the background is burnt and the letters stand in bare material. It is real geometry — the plaque outline and the letters are emitted as subpaths of one path with fill-rule=evenodd, so the letters are holes in the burnt field. An SVG mask was deliberately not used: laser software ignores it and would burn the whole plaque.
- Reverse engraving is unavailable for an uploaded shape, because subtracting the letters needs one clear outline and an uploaded file does not necessarily have one.
- v1.2.02026-08-28
- Pick the fabrication method first: an opening screen asks “what are you making?” — laser cut or 3D print — and the tool then shows only that method's controls.
- Laser mode: preview + cut lines, letter type (engraved or layered glue-on) and the SVG export. Print mode: the 3D view, plate/letter heights and the 3MF export. Shape, text, size and mounting holes are shared by both methods.
- Switch method any time from the chip next to the view tabs — your design is kept; a ?output=laser / ?output=3d link opens straight in the right method; and a saved design reopens in the method it was made for.
- Fixed: in print mode the 3D preview showed flat letters while the 3MF always exported raised ones — the preview now matches the file.
- v1.1.02026-07
- Mobile layout with a sticky preview.
- Multiple mounting holes with auto-placement.
- v1.0.02026-06
- Sign maker launched.
Box generatorv2.3.0
Changelog
- v2.3.02026-09-01
- Fixed: fullscreen showed only the preview and no settings, so any change meant leaving fullscreen, adjusting, and going back in — the opposite of what more room is for. The settings now sit in a side rail that scrolls on its own, and the download and save buttons are there too, so you are not forced out just to export.
- Fixed: the "fullscreen" button kept appearing while already in fullscreen. The bar at the top is the way out; a second button did nothing but confuse.
- In fullscreen on a phone the settings drop below the preview instead of disappearing — hiding them there would have recreated exactly the problem this fix exists to solve.
- v2.2.02026-08-31
- Fixed a bug that ruined parts: on boxes with dividers, the slot holding each divider was cut to the wall's full height and left not one millimetre of material below it — so every wall came off the sheet as three loose strips, joined only by whichever bottom tabs happened to line up. On the flat sheet it looked like a tidy line, and it only showed up once the material was already cut. The slot now stops higher, leaving 8 mm of material, and the divider's ends are notched so it still drops all the way to the base.
- Added an automatic check across all twenty box types that no panel is cut into separate pieces. This bug existed in exactly one type and was invisible in the other nineteen.
- The assembly animation now places one part at a time in real build order — base, walls, dividers, lid — instead of moving everything at once. Moving together shows the result but never shows what goes where, which is the only reason to animate it. Added a "Build it" button that plays the sequence.
- v2.1.02026-08-31
- Added a 3D view of the assembled box with drag-to-rotate, zoom, material choice and fullscreen. Each panel's position is derived from the same geometry that writes the cut file, so the view cannot show a box that differs from what will actually be cut.
- An assembly slider runs the parts from lying flat on the cutting bed into their place in the box. It is an assembly, not a fold: a finger-jointed box does not fold — its parts slot into one another — and a folding animation would depict something that never happens.
- Panels are now outlined in the view. Without outlines every panel is the same colour and butts against its neighbour, so a finger joint renders as a smooth seam — exactly the thing you came to check. The default material is plywood rather than black acrylic, for the same reason.
- Added decorative engraving: eleven patterns (stripes, crosshatch, grid, dots, waves, chevron, hexagons, confetti, border, corners, rays) with density, line weight, margin and angle, applied to the walls, the base and lid, or everything.
- The pattern stays clear of the finger joints and of every cut-out — so no machine time is spent engraving a surface that ends up inside a joint, and nothing burns into a window. The confetti pattern is deterministic, so the downloaded file matches the preview.
- Added deck fitting: pick a card size (poker, bridge, mini, tarot), a card count and whether they are sleeved, and the tool sets the box dimensions. A sleeved card is roughly twice as thick, which is why a box measured unsleeved will not close on a sleeved deck.
- The settings panel is split into separate cards instead of one long column of sections.
- Three types are not built from the rectangular shell (polygon, living hinge, round) and have no 3D yet — rather than an empty canvas they show the cut sheet with a note.
- v2.0.02026-08-31
- Rebuilt: instead of one open-top box there is now a type chooser with twenty box types — from an open tray to a drawer unit, a display case, a charity box, a polygon box and a round box on a living hinge.
- Every type is built on one joint engine and declared as data (which faces exist, how the lid works, where the dividers go) rather than twenty separate implementations that each break separately.
- The joints are covered by unit tests: a male tooth lands exactly in its female notch, two walls interlock in the corner column with no overlap and no hole, and the tooth count is always odd — so it does not matter which way round a panel is cut.
- Kerf compensation was fixed at the root: the tooth grows by half the kerf and the notch opens by half the kerf, so what survives the beam is the size that was designed, and the play is exactly what you asked for.
- Fixed a bug that could ruin a sheet: panel names were written into the cut file itself as grey text, so anyone importing it engraved the word "front" across the panel. Names, ruler and sheet outline now live in a separate grey layer.
- Parts are nested onto your laser bed — pick the bed size and the tool packs the panels (tallest first) and spills onto another sheet when it must. MakerCase and Boxes.py lay parts out at a fixed spacing with no idea how big your machine is.
- Added layered DXF export (CUT and ENGRAVE), Hebrew text engraving with correct direction, a 50 mm reference ruler to check the scale after import, holding tabs so parts do not drop through the honeycomb, and inside/outside dimensions plus mm/inch.
Living-hinge generatorv1.0.0
Changelog
- v1.0.02026-05
- Initial release of the tool.
Batch Personalizationv1.0.0
Changelog
- v1.0.02026-05
- Initial release of the tool.
SVG Keychainv1.23.0
Changelog
- v1.23.02026-09-04
- Added a print-bed preview: before you download, you see the model lying on the bed you picked — at its real size, in the spot it will actually be exported to. Until now that question was only answered by a warning, and only once something already did not fit.
- The credit is taken only once there is a file to hand over. A job over the triangle ceiling is stopped before the charge instead of being charged and then handed an error.
- v1.22.02026-09-04
- Added a print-bed size picker: choose the printer you own (Bambu 256×256, A1 mini, H2D, K2 Plus, Prusa, Ender) or type a size, and the 3MF export puts the model in the middle of YOUR bed instead of leaving it in the corner the generator built it in.
- If the design is bigger than the bed you picked, you are told the dimensions while you edit and again on download — instead of finding out in the slicer.
- v1.21.02026-08-30
- An important clarification in the UI: choosing fewer than all the layers makes the loop lower than the model — so the raised outline steps down exactly where the loop joins it. An amber note now states that in millimetres (e.g. "the loop is only 5.0 mm tall out of the model's 8.2 mm") instead of talking only about a number of layers.
- In the 3MF that was checked the loop was one layer: a red ring 5.0 mm tall on an 8.2 mm model — which is why the black outline broke at it. Choosing the full number resolves it.
- v1.20.02026-08-30
- Fixed: moving the loop away from the object stopped after about 2 mm. A safety clamp pinned the ring's centre to at most 0.85 of its radius from the body — on a 300 mm model that is invisible travel, so the field looked dead. The offset you ask for now happens in full, and the neck that ties the ring on stretches across the gap so it stays one welded piece. (The AUTOMATIC placement is still clamped — a corner sitting far from the silhouette must not fling the ring into space.)
- Fixed: in a design with no base layers the loop was left out of the drawing bounds entirely. The ring sat outside the viewBox — the design file and the export cropped it, and dragging the loop outwards changed the reported size by nothing. The bounds now always include the ring.
- v1.19.02026-08-30
- Fixed: in a design with no base layers the loop came out in a middle layer's colour — a yellow loop on a black-outlined logo, for instance. The default number of layers did not suit the design. Now: with base plates the loop is as tall as the plates, as before; without base plates it goes full height, so the loop's face is the model's outer colour and it reads as a continuation of the object (and is as strong as the whole model).
- The swatch strip under the control now marks the last colour — the one you see from above — and a short note appears when you pick fewer than the full number. That is the part that surprises people.
- v1.18.02026-08-30
- Fixed (the reported bug): typing a position for the hole/loop into the offset fields did nothing until you clicked another control. The tools' number fields held what you typed as a draft and only sent it on blur or Enter — which is why changing "size" afterwards was what finally made the position move. Every keystroke now lands immediately. Typing stays free: a value not yet in range ("6" on the way to "60") simply waits instead of snapping to the limit.
- This fix applies to the number fields in every tool on the site, not only this one.
- Fixed: in inlay mode (colours in one plane) every colour part was given the whole ring — several overlapping solids at the same height. Exactly one part now carries it.
- v1.17.02026-08-30
- Fixed: choosing a corner for the loop did nothing once you had dragged it. The manual nudge is an offset from the chosen corner, and it was kept when you switched corners — so after dragging the ring downwards, picking "top right" landed it at middle-right and the control read as broken. Picking a corner now clears the nudge.
- New — "layers the loop spans": 1 up to the number of layers in the model. The loop is built inside the layers themselves, so each part of it comes out in the colour of the layer it passes through, and the swatch strip under the control shows exactly which colours that will be. Replaces the yes/no "full-height loop" switch.
- Fixed: changing a colour layer's colour repainted nothing — the paint pass read the colours but did not listen for changes to them.
- v1.16.02026-08-30
- Fixed: a colour layer's height did not respond. The height was stored inside the flattened contours, and the flatten is cached per artwork — so every height change read the old cached value and the model never moved. The height now comes from the options, which are rebuilt on every change. The rule: nothing the user can change may travel inside a cached structure.
- Fixed: the through-hole was punched only in the base layers, not in the artwork layers above them. Whenever the artwork reached over the ring it closed the hole from above and there was nothing to thread. The hole now goes through every layer, without exception.
- New — "full-height loop": off, the loop is a tab only as tall as the bases; on, the ring's material rises through the artwork layers too and the loop is as thick and strong as the whole model. It depends on the design, so it is a choice rather than a forced default.
- v1.15.02026-08-30
- New — a live "material in mid-air" check. On every rebuild the tool measures, for each layer, how much of it has nothing underneath, and warns with the exact percentage per layer. It is measured on the finished stack rather than trusted from the construction rules, because an overhang arises in several different ways — an outline wider than the shape it surrounds, a colour over a hole in the plate, and "frames" mode growing each base outward.
- New — a suggestion to delete a redundant base layer. With a border width of 0 the base has exactly the artwork's outline: it is completely hidden behind it and only adds thickness and print time. The tool now says so and offers to remove it in one click.
- New — layer reordering: drag with a mouse, plus up/down arrows on every row. The arrows are not decoration — dragging does not work on touch, and most makers are on a phone.
- v1.14.02026-08-30
- All base layers can now be deleted, including the last one. It used to be locked because the keyring loop was welded onto a base and would vanish without it — now, with no base, the loop welds straight onto the artwork and is emitted as its own full-height part, so it still hangs. In a design that is nothing but the artwork, a base layer is just a plate hiding it.
- v1.13.02026-08-30
- Fixed: in "a layer per colour" mode the upper layers printed into thin air. The cause: a colour is not necessarily contained in the one below it — an outline stroke is wider than the shape it surrounds — and in the file examined the black outline overhung the yellow beneath it by about 6 mm a side, and the red as well. Each layer is now grown by everything above it, so every upper layer lands on solid material. The extra material sits directly under the layer that needed it, so nothing changes seen from above.
- v1.12.02026-08-30
- Fixed: the mobile preview was meant to stick to the top of the screen and simply did not. The cause: the mobile layout was a one-column grid, and in such a grid every child is its own row — a sticky element is confined to its own grid area. The row was exactly as tall as the preview, so it had zero distance to travel: sticky was applied and never stuck. Mobile is now a flex column, where the children share one container — measured: 1566 px of travel instead of 0, and the preview stays pinned while the settings scroll.
- The preview now fits itself to the screen automatically when a design loads, not only when ⤢ is pressed. It used to open at 100% — 4 pixels per mm — so a 309 mm design rendered 1236 px wide and the cut sheet 3712 px, inside a 375 px phone screen. In practice you saw a corner of the keychain with no hint that there was more.
- v1.11.02026-08-30
- The layers panel was showing rows that did nothing. When the colours from the file are kept, the colour rows ARE the artwork, so the separate artwork row above them is gone — it no longer painted anything.
- The last base layer can now be deleted too, but only while the keyring loop is off. The loop is welded onto a base, and with no base it would silently vanish from the model; so instead of blocking with no explanation, the tool now says exactly why and what to turn off.
- v1.10.02026-08-30
- Stroked outlines are now real parts. Only fills counted before, so a black outline — the normal way a logo is drawn — simply vanished. The stroke is now offset by half its width to each side into a closed ribbon with actual area: exactly the region the stroke covers. Outlines are painted last, above every fill, as SVG draws them.
- Colour groups are now layers in their own right: each colour gets its own row in the layers panel with an editable height and colour, exactly like the base layers. The file's fills are only the starting point.
- v1.9.02026-08-30
- Fixed: when keeping the colours from the file, the colour parts were shifted by one margin relative to the base and overhung it — which showed up as floating areas with no material under them. The cause: the margin offset was applied twice, once when placing the colour group and again by the emit step, which adds it itself.
- New — a choice between two colour modes: "inlay" (all colours in one plane, overlaps cut — a flat, thin profile) and "a layer per colour" (each colour at its own height, one above the next). In stacked mode the overlaps are deliberately NOT cut: the lower colour stays whole and the next rests on it, otherwise the lower layer would be hollowed out and the upper one left unsupported.
- v1.8.02026-08-30
- A colourful SVG is no longer flattened against your will. When an uploaded file uses several fill colours, a "keep the colours from the file" option appears with swatches of what was found — and each colour becomes its own part, like an inlay. Off by default: for most keychains a single silhouette is still the right answer, and keeping colours means a filament change per colour.
- Overlaps between the colours are cut automatically following the file's own paint order — exactly as SVG draws it: what is painted later covers what came before. Without that the parts would sit on top of each other in the same plane, which a slicer shows as a clash, with the wrong colour surfacing in places.
- The fill colour is resolved through inheritance from groups: in a typical logo every yellow shape sits inside one <g fill>, and reading the attribute on the element itself would have missed all of them. Colours are normalised, so #F70000, #f00 and red land in the same group.
- A file with more than 8 colours (a vectorised photo) still flattens as before — an inlay with dozens of filament changes is not printable.
- v1.7.02026-08-29
- This tool's "details thinner than a 0.4 mm nozzle" warning was a separate copy with its own wording. It now renders through the same shared component as every other print tool — so it explains rather than alarms, is graded by severity (under 4% with nothing vanishing completely reads as a calm tip, not a warning), and explicitly points you at "As it will print" to see the real result.
- The fix advice moved into a "How do I fix this?" disclosure. The old duplicated copy is gone, so the warning wording can no longer drift between tools.
- v1.6.12026-08-29
- Fixed: deleting a layer threw an error. The colours update instantly while the geometry rebuilds behind a debounce — and in that window a stale layer pointed at a colour that no longer existed.
- v1.6.02026-08-29
- "Target width" is now "Design width" — which is what it is: the artwork's width before the frame is added.
- Uploading an SVG adopts the width declared in the file itself (mm, cm, inches or pixels) instead of a fixed 60mm default. A file with no physical width keeps the current value rather than guessing.
- New "Finished width": enter the total size of the finished keychain and the tool solves backwards for the design width — verified at 45, 90 and 120mm, within 0.3mm.
- The finished dimensions (width and height) now sit on the print-estimate line, in laser mode too.
- v1.5.02026-08-29
- The “building the preview…” indicator now appears as soon as the file is chosen — not only after the SVG has been read, which is the part that actually freezes the browser on a complex logo.
- A file we can’t read no longer wipes the design you had — the previous artwork comes back with the error.
- v1.4.02026-08-28
- Print-time + filament estimate: in print mode the tool now shows roughly how long the print will take and how many grams of filament it needs — without opening a slicer and without switching to the 3D view. It runs on the same geometry the 3MF is built from and updates live as you change size or height.
- Shown in the 2D view too whenever the output mode is print, and it counts each colour layer separately.
- The estimate assumes a standard FDM profile (0.4 mm nozzle, 0.2 mm layers, 15% infill, 2 perimeters, PLA); the real time depends on the printer and the profile — ±25% is normal, and the tool says so.
- v1.3.02026-08-28
- 0.4mm-nozzle print check: a warning when details are too thin, with a view switch — normal / what won't print (in red) / as it will actually print.
- Every hole shape now works at every size — a shape too small for a safe hole falls back to a round one with an explanation, instead of looking stuck.
- Shape rotation is a slider; "fill outline gaps" (renamed) is a slider up to 20mm; the target-width tip clarifies it is the artwork's width, not the finished keychain's.
- Fixed: vectorized artwork with overlapping shapes 3D-printed with rectangular voids; a loading indicator while the preview builds; a failed save now always shows its reason.
- v1.2.02026-08-28
- Speed: the uploaded artwork is sampled once and decimated to sub-kerf accuracy — a complex SVG now rebuilds tens of times faster.
- Smooth loop dragging: the handle tracks your finger at 60fps and the geometry rebuilds in batches instead of on every move.
- New "close small holes": fills unwanted gaps in the base plate only — the artwork's own holes and the keyring hole stay open.
- Falls-apart warning: if the base splits into several pieces you now get a notice above the preview, with "widen the outline" and a one-click "auto-weld" that fuses it.
- v1.1.02026-08-28
- Loop & hole shape: round, rounded square, slot, teardrop, hexagon, triangle, diamond, star or heart — with rotation.
- The loop now anchors to the artwork's real silhouette at the chosen corner, welds in as one connected piece, and can't be torn off by dragging.
- A minimum wall is kept around the hole — the ring can no longer become a sliver that snaps.
- Laser mode: new "cut lines" view — exactly the cut sheet the export writes, with red cut and blue score.
- v1.0.02026-08-26
- New tool: SVG Keychain — upload an SVG to get a layered keychain with an outline, coloured base layers (per-layer height + colour), and a welded keyring loop with a through-hole. 2D/3D preview, drag the loop on the canvas, and export a layered SVG (laser) + multi-colour 3MF (3D print).
Jigsaw Puzzle Makerv1.4.0
Changelog
- v1.4.02026-07-27
- Shape-tiles now connect — motifs merge into one panel with bridges between neighbours, so every piece links up.
- v1.3.02026-07-27
- New style — Radial rings: a circular puzzle of concentric rings and sectors (like a dartboard) with interlocking tabs.
- Even frame around every shape (incl. heart), straight frame edges on polygon shapes, a small-piece warning, and a choice of whether the picture covers the frame.
- v1.2.02026-07-27
- New style — Shape tiles: every piece is a heart, circle, star, flower, clover, diamond, hexagon, triangle or oval, with a piece-size control. Tiles are clipped to the outline shape.
- v1.1.02026-07-27
- New style — Regular tabs (even pieces with no random bending), alongside Interlocking and Straight grid.
- Upload a picture that shows under the cut lines (opacity + fill/fit/stretch) — it's embedded in the exported SVG too.
- v1.0.02026-07-27
- Laser-cut jigsaw generator — real interlocking tabs; choose piece count, size and outline shape.
- Outline shapes: rectangle, square, circle, oval, heart, star, hexagon and triangle — interior lines are clipped to the shape.
- Tab size, randomness & seed (with a shuffle button), rounded corners, an outer tray frame, straight-cut mode, and a separate border layer.
- Download as millimetre-accurate SVG or a preview PNG.
Weld & Score Textv1.15.0
Changelog
- v1.15.02026-09-04
- Added a print-bed preview: before you download, you see the model lying on the bed you picked — at its real size, in the spot it will actually be exported to. Until now that question was only answered by a warning, and only once something already did not fit.
- The credit is taken only once there is a file to hand over. A job over the triangle ceiling is stopped before the charge instead of being charged and then handed an error.
- v1.14.02026-09-04
- Added a print-bed size picker: choose the printer you own (Bambu 256×256, A1 mini, H2D, K2 Plus, Prusa, Ender) or type a size, and the 3MF export puts the model in the middle of YOUR bed instead of leaving it in the corner the generator built it in.
- If the design is bigger than the bed you picked, you are told the dimensions while you edit and again on download — instead of finding out in the slicer.
- v1.13.02026-09-01
- The separate-pieces warning told two causes apart and missed a third — the most common one in Hebrew. When every line is welded on its own and the only splits are BETWEEN the lines, "increase the weld gap or overlap the letters" points at a control that cannot close that gap.
- Measured: two lines stay two pieces at every line spacing the tool offers (1.0 down to 0.5) — Hebrew letters simply do not reach far enough up or down to meet. What does join them is a support bar under the lines, which takes the same design from two pieces to one.
- So a "support bar" control was added to the toolbar (with adjustable thickness), and the warning now recognises this case, says so plainly, and offers that button instead of the one that cannot help.
- The default text changed from Sarah to אריאל, verified to cut as a single connected piece — a tool whose whole promise is welding into one piece should not open on an example that falls apart.
- Recorded in the tests: in the default font ה is drawn as two separate strokes, so eight letters can come out as nine pieces. That is why the count is taken on the geometry rather than on the number of characters — a per-letter tally would have missed the ninth piece, and the ninth piece is the one that falls out of the machine.
- v1.12.02026-09-01
- Layer cut is now off by default. The entire point of this tool is that the text comes out as one connected piece, and this feature works by doing the opposite — cutting a gap through the piece so one line reads as passing over another. On overlapping script it can saw the design into loose fragments.
- It is a legitimate design choice (a layered / drop-shadow look), but not one to inherit unasked. Turn it on with the button when you want it; the warning under the preview reports how many pieces you ended up with.
- v1.11.02026-09-01
- Fixed: when the piece came off in several parts the warning always blamed the weld gap and told you to widen it — advice that cannot work when the layer gap is the cause, because the gap is cut after welding and re-cuts whatever the weld joined.
- The warning now separates the two causes and names each, because they need opposite fixes: letters that never touched need more welding, while a piece the layer gap sawed apart needs less gap or none. The engine reports how many parts existed before the gap bit, and that is what tells them apart.
- When both causes are present — which is the common case — the message says how many parts belong to each and offers both fixes. Showing only one sends you to solve half the problem and keep the rest.
- v1.10.02026-08-31
- Line order is now layer order: the line in front cuts a clean gap into everything behind it instead of the two melting into one blob, so the material clearly shows one passing over the other. Still one piece — the gap only bites where something is actually behind. It can be switched off for full welding.
- The gap is cut AFTER the gap-closing pass rather than before, because that pass fills every gap up to the weld width — a gap cut earlier would simply be welded shut again. For the same reason it is forced wider than the weld gap.
- Added a hierarchical layers panel: lines listed front to back, click to select a line, expand to pick a single letter without hunting for it on the canvas.
- The selection marker — the same four corner brackets a single piece had — now also appears when a whole line is selected, around its real extent including letters dragged out of the line.
- The layer controls sit on the canvas rather than in the form, because they are judged by eye rather than by reading a number.
- v1.9.02026-08-31
- Emoji are now fitted to the height of the letters, with an "Emoji size" control (40%–200%) for tuning. An emoji fills almost its entire em square while a letter occupies about seven tenths of one, so setting both at the same font size makes the emoji tower over the word. Fitting is to the letter height, with one uniform factor so a wide glyph stays wide.
- v1.8.02026-08-31
- The default font is now Arial. Arial itself is proprietary and cannot be bundled, so the font is Arimo — metric-compatible with Arial (identical advance widths, so a layout designed for Arial keeps the same line breaks) with full Hebrew coverage and an OFL licence.
- Added an emoji picker to every line — the same palette the other tools use, so there is no need to type or paste an emoji from somewhere else. It is inserted at the caret rather than at the end of the line, which matters: the tool welds the shapes into one piece, so where it lands decides what touches what.
- The emoji engine itself already existed — codepoint-range detection, a monochrome font loaded only when the text contains an emoji, and a bidi isolate that keeps it where it was typed beside a Hebrew word. What was missing was the way to choose one.
- v1.7.02026-08-31
- New — "don't cut holes smaller than": counters inside letters (ם, ס, B) below the value you choose simply are not cut. A one-millimetre hole tends to char on its way out, drop through the honeycomb, and add cutting time for nothing. The filter runs before anything is drawn, so the preview, the SVG, the DXF and the 3D model all agree — and a solid body is never removed, only a hole.
- New — rotate the selected piece, ±180°, about its own centre so it stays where it sits instead of swinging away from the line.
- New — the selected piece is marked with four corner brackets set outside its box. Not a fill or an outline over the design, so nothing about the piece's appearance changes and the marker never reaches an exported file.
- v1.6.02026-08-31
- Fixed: dragging a letter or a line jumped instead of moving continuously. This was my own fix trading one symptom for another — the debounce that removed the heaviness introduced a fixed lag, so the preview only moved when the timer fired. There is now a scheduler that never runs two builds at once and, while one runs, only remembers that another is owed: the preview updates as fast as the machine can manage and always settles on the exact final position.
- Also checked the suspicion that the piece did not land where the cursor was: the pixel-to-millimetre mapping is exact (4 px/mm measured against the 4 the drag assumes), so the drift was the jumping alone.
- New — import text: paste a whole block and each line becomes a line in the design. Blank lines are skipped, and the new lines inherit the font, size and spacing of the existing line rather than arriving in a different default.
- New — set the font for every line at once, instead of setting it again on each line.
- v1.5.02026-08-31
- Dragging a letter or a line used to feel heavy — it no longer does. Every small mouse movement rebuilt the whole weld, a 100–400 ms operation, about 60 times a second. The rebuild is now debounced by 90 ms, so a full drag produces two builds instead of sixty.
- Technical note: the old cancellation flag only discarded the RESULT — the work itself still ran to completion on the main thread. That is why typing felt fast while dragging stalled.
- v1.4.02026-08-29
- The "details thinner than a 0.4 mm nozzle" warning was rewritten to explain rather than alarm. It now says in one plain line what this actually means (the printer lays a 0.4 mm line, and anything thinner doesn't come out), how much of the design is affected — and explicitly points you at the "As it will print" button to see the real result before deciding.
- The warning is now graded by severity: under 4% with nothing vanishing completely it shows as a calm tip (💡) saying this is usually no big deal, instead of an amber warning. Over 10% it says plainly that this is worth fixing before printing.
- The fix advice moved into a "How do I fix this?" disclosure, so one message no longer mixes the physics, the number and the solution in a single line.
- v1.3.02026-08-28
- Pick the fabrication method first: an opening screen asks “what are you making?” — laser cut or 3D print — and the tool then shows only that method's controls instead of mixing a laser file and a print file on one screen.
- Laser mode: the cut-lines preview, score seams, per-letter dragging and the SVG/PNG exports. Print mode: the 3D view plus a flat check, material thickness and preview material, the nozzle check + print estimate, and the 3MF export.
- Score seams are a laser-only op — the 3MF never carried them — so the 3D preview no longer shows raised ridges that don't exist in the file you download.
- Dragging a letter/word on the canvas now works in print mode too (on the flat check view) — a floating part falls off the print bed exactly like it falls off the cut sheet.
- Switch method any time from the chip next to the view tabs — your design is kept; a ?output=laser / ?output=3d link (from the tools grid) opens straight in the right method; and a saved design reopens in the method it was made for.
- v1.2.02026-08-28
- Print-time + filament estimate: in print mode the tool now shows roughly how long the print will take and how many grams of filament it needs — without opening a slicer and without switching to the 3D view. It runs on the same geometry the 3MF is built from and updates live as you change size or height.
- Measures the whole welded piece at the chosen thickness; laser mode shows no estimate at all.
- The estimate assumes a standard FDM profile (0.4 mm nozzle, 0.2 mm layers, 15% infill, 2 perimeters, PLA); the real time depends on the printer and the profile — ±25% is normal, and the tool says so.
- v1.1.02026-08-28
- Printability check (0.4 mm nozzle) in 3D mode: measures the letter strokes AND the bridge / underline bars — a bar thinned past one bead is exactly the classic “it snapped”.
- Three previews: “as designed”, “what won’t print” (red marking) and “as it will print”; visualisation only — the exports are identical in all of them. Laser mode is unchanged.
- v1.0.02026-07-30
- New tool: Weld & Score Text — welds overlapping letters into one connected piece, adds score lines at the seams; laser + 3D print.
Edge-Lit LED Lampv1.0.0
Changelog
- v1.0.02026-09-02
- New tool: edge-lit LED lamp — one laser sheet holding a clear-acrylic panel with a bottom tab and an engraved design (Hebrew text or an uploaded SVG), plus a stack of slotted base plates that hold it upright over an LED.
- The slot in the base is cut 0.4 mm longer and 0.2 mm wider than the tab and your acrylic thickness. That small allowance is the difference between a panel that slides in and one that jams or rocks. The tab height is derived from the plate count times the thickness, so it passes through the whole stack.
- The text is put through the real bidi algorithm into visual order before it becomes outlines, because many laser programs lay characters out left-to-right in memory order and Hebrew comes out reversed. The base direction is chosen explicitly: right-to-left, left-to-right or auto.
- What this version does not do: it makes no LED cavity and no wiring channel — the light is your job; there is no 3D preview, no PNG export, and the text is a single line. The only output is SVG.
Tag & keychain studiov1.6.0
Changelog
- v1.6.02026-09-04
- Added a print-bed preview: before you download, you see the model lying on the bed you picked — at its real size, in the spot it will actually be exported to. Until now that question was only answered by a warning, and only once something already did not fit.
- The credit is taken only once there is a file to hand over. A job over the triangle ceiling is stopped before the charge instead of being charged and then handed an error.
- v1.5.02026-09-04
- Added a print-bed size picker: choose the printer you own (Bambu 256×256, A1 mini, H2D, K2 Plus, Prusa, Ender) or type a size, and the 3MF export puts the model in the middle of YOUR bed instead of leaving it in the corner the generator built it in.
- If the design is bigger than the bed you picked, you are told the dimensions while you edit and again on download — instead of finding out in the slicer.
- v1.4.02026-08-28
- Pick the fabrication method first: an opening screen asks “what are you making?” — laser cut or 3D print — and the tool then shows only that method's controls instead of mixing a laser file and a print file on one screen.
- Laser mode: preview + outlines, letter type (engraved or layered glue-on), score-instead-of-engrave, the laser layer legend, SVG export (including the editable-text SVG) and send-to-another-tool. Print mode: the 3D view, base/letter heights and the 3MF export.
- Switch method any time from the chip next to the view tabs — your design is kept; a ?output=laser / ?output=3d link (from the tools grid) opens straight in the right method; and a saved design reopens in the method it was made for.
- Fixed: in print mode the 3D preview showed flat letters while the 3MF always exported raised ones — the preview now matches the file.
- v1.3.02026-07-21
- Emoji & icons inside the name, with an emoji picker — engraved as a clean outline.
- Keyring hole is auto-positioned inside the shape and draggable, with an always-visible handle.
- Cut / score / engrave layers legend below the preview.
- Drag-to-pan zoom, plus mobile touch & scroll fixes.
- v1.2.02026-06
- Mobile redesign with a sticky preview.
- 3D preview and 3MF export with base numbering.
- Stencil letters and custom-shape (SVG) upload.
- v1.0.02026-05
- Tag & keychain studio launched.
Name Beadsv1.4.0
Changelog
- v1.4.02026-09-04
- Added a print-bed preview: before you download, you see the model lying on the bed you picked — at its real size, in the spot it will actually be exported to. Until now that question was only answered by a warning, and only once something already did not fit.
- The credit is taken only once there is a file to hand over. A job over the triangle ceiling is stopped before the charge instead of being charged and then handed an error.
- v1.3.02026-09-04
- Added a print-bed size picker: choose the printer you own (Bambu 256×256, A1 mini, H2D, K2 Plus, Prusa, Ender) or type a size, and the 3MF export puts the model in the middle of YOUR bed instead of leaving it in the corner the generator built it in.
- If the design is bigger than the bed you picked, you are told the dimensions while you edit and again on download — instead of finding out in the slicer.
- v1.2.02026-08-29
- Emoji support: an emoji can be mixed into the name and gets its own bead, exactly like a letter. It is drawn from the black-and-white Noto Emoji OUTLINE face — the same engine the keychain tools use — so it comes out as a solid printable shape.
- Character splitting moved to grapheme clusters: a flag, a ZWJ sequence (a family) or a skin-toned emoji counts as one character and makes one bead, instead of breaking into several broken ones.
- v1.1.12026-08-29
- Fixed: in the vertical (tag) layout the bore was drilled through the face of the bead — down through its thickness — instead of running top-to-bottom along the cord. The 3D engine's default cylinder already lies on the Y axis, and an unnecessary rotation swung it onto Z. The hole now follows the threading direction in both layouts, and a test pins the bore axis for each.
- v1.1.02026-08-29
- RTL support: a Hebrew name is now laid out in correct visual order — first letter on the right — through the Bidi algorithm, so mixed Hebrew/Latin/number text also comes out in the right order on the plate and on the cord.
- The preview gained the standard studio toolbar — zoom, fit to screen, percentage and fullscreen — and on mobile it sticks to the top of the screen so it stays visible while you scroll the settings.
- v1.0.02026-08-29
- New tool: a bead for every letter of a name — for necklaces, bracelets, shoelaces or bags. Three shapes (square, disc, letter-shaped), a threading hole, a raised letter in its own colour, font choice and direction (left-to-right for a necklace / up-and-down for a tag). Two-colour 3MF export.
- Two deliberate departures from the original model, both for printability: the square bead is an extruded rounded rectangle rather than a body rounded on every edge, so it has a real flat bottom face to sit on the bed; and the wall thickness around the hole is measured and shown instead of being produced silently. At the original model's own defaults a disc bead leaves 1 mm and a letter-shaped bead only 0.7 mm — the tool now says so.
- Additional checks: a letter that breaks into more than one piece (a separate dot, a floating part) is flagged before printing, plus the 0.4 mm nozzle check on the raised letters.
Bag Tagv1.5.0
Changelog
- v1.5.02026-09-04
- Added a print-bed preview: before you download, you see the model lying on the bed you picked — at its real size, in the spot it will actually be exported to. Until now that question was only answered by a warning, and only once something already did not fit.
- The credit is taken only once there is a file to hand over. A job over the triangle ceiling is stopped before the charge instead of being charged and then handed an error.
- v1.4.02026-09-04
- Added a print-bed size picker: choose the printer you own (Bambu 256×256, A1 mini, H2D, K2 Plus, Prusa, Ender) or type a size, and the 3MF export puts the model in the middle of YOUR bed instead of leaving it in the corner the generator built it in.
- If the design is bigger than the bed you picked, you are told the dimensions while you edit and again on download — instead of finding out in the slicer.
- v1.3.02026-08-29
- Fixed a real bug: the name panel printed as a separate piece, unattached to the tag body. A neck now joins the middle of the symbol to the panel, and the stem from the ring reaches into the symbol itself rather than a guessed offset. A genuine part count was added — it counts how many separate pieces would come off the bed and says so when it is more than one. Verified against the real emoji font, six different symbols and 27 size/panel combinations.
- Nozzle check: the tag's own outline is now checked too, not just the raised detail — a thin border around a spiky emoji, or a narrow neck, is exactly what snaps, and neither was being checked before.
- New — "close gaps": fuses notches and thin corners in the shape without changing its outer size.
- New — hole shape: round, rounded square, square, or a slot (for a strap or a wide carabiner).
- Speed: a rebuild went from 112 ms to 44 ms. Three changes — the emoji outline is decimated at source (a glyph samples into thousands of points, every one of them paid for again at each later stage), the hanging hole is no longer cut with a mesh boolean but built as a nested hole in the shape itself, and colours no longer trigger a rebuild — changing a colour repaints the existing parts.
- Design: the settings are now grouped into titled sections instead of one stack of identical boxes.
- v1.2.02026-08-29
- The tag's symbol is now a real emoji instead of the hand-authored shape set. Correcting an earlier call: colour emoji fonts genuinely give no cuttable outline, but the project already ships Noto Emoji in its black-and-white OUTLINE form — the same face the keychain tools cut with — so any emoji works. There is an emoji picker, and one can be pasted in.
- In "icon shaped" mode the tag outline is taken from the emoji itself, so the tag takes its shape with the border around it.
- Duplicated parts in the export are prevented: when the emoji and the name sit at the same height (no raised panel) they are unioned into one body before extruding, instead of two overlapping solids the slicer reports as doubled walls. The panel is built in the plate colour, so only two colours ever reach the file.
- v1.1.02026-08-29
- The tag was redesigned around the reference tags supplied. Three styles: "icon shaped" (now the default), where the tag outline IS the chosen icon grown outward — that margin being the border you see around the symbol on the originals — plus rectangle and circle. The border width is adjustable.
- Added a name panel at the bottom in three options: raised (a step standing proud of the plate, as on the originals), flush, or none. The panel is built in the plate colour, so a raised panel costs no extra filament change and the name on it stays in the raised colour.
- Full RTL support: a Hebrew name is run through the Bidi algorithm and ordered correctly, including mixed Hebrew/Latin/number text.
- The preview gained the standard studio toolbar — zoom, fit to screen, percentage and fullscreen — and on mobile it sticks to the top of the screen so it stays visible while you scroll the settings.
- v1.0.02026-08-29
- New tool: a tag for a bag or a suitcase — a plate at your chosen size (55×85 mm by default, taken from the reference tags supplied), a hole for a ring, an icon chosen from 26 icons in five categories, and a raised name with an optional second line (phone / class / destination). Two-colour 3MF export: plate + raised layer.
- The icons are deliberately not real emoji: colour emoji fonts store each symbol as a bitmap or as stacked colour layers, and neither yields the single clean outline needed to cut or raise. Every icon here is therefore a hand-authored solid vector path — clean to print, and free of any font licence.
- Three manufacturing checks: the hole is kept inside the plate and warns when under 1.5 mm of material is left to the edge (where a tag tears off), an over-long name is scaled down to fit the plate and says that it was, and every raised element goes through the 0.4 mm nozzle check.
Text & Hebrew
Hebrew Stencil Makerv1.0.0
Changelog
- v1.0.02026-05
- Initial release of the tool.
Circle Text (360°)v1.1.0
Changelog
- v1.1.02026-08-29
- The first screen is no longer a mess: the top and bottom lines now share one angular budget around the circle, so they can’t run into each other — until now each line was fitted to up to 300° on its own and the text collided at 3 and 9 o’clock.
- Text automatically keeps clear of the border ring, so letters no longer touch the cut line.
- New defaults that look like a finished product — a seal with a name, tagline, centre and ring, instead of an empty circle with overlapping text.
- A beginner wizard (🪄) that opens itself on a first visit: a few plain questions, then you land in the full tool with sensible values. Skippable at every step.
- Presets now show a thumbnail sketch and a one-line description — you see what you get before you click.
- Settings are grouped (text / size / arrangement / ring & decoration / advanced) and every control has a plain-language help line instead of geometry jargon.
- v1.0.02026-08
- Circle text maker launched.
Hebrew text for laserv1.0.0
Changelog
- v1.0.02026-05
- Initial release of the tool.
QR & barcode generatorv1.3.0
Changelog
- v1.3.02026-07-28
- Curved mug/tumbler wrap, product mockup (code on a product photo), and an experimental halftone mode.
- v1.2.02026-07-28
- "Scan me" frame, AI background (describe an image and it's generated behind the code), and laser export — engrave + cut border or stencil cut-out.
- v1.1.02026-07-28
- New pixel-art mode — upload artwork and it shows through the code: each data pixel shrinks to a centre dot and error correction is forced to High to stay scannable.
- v1.0.02026-07
- Initial release of the tool.
Image prep
Background removerv1.1.0
Changelog
- v1.1.02026-09-04
- The preview gained zoom and a fullscreen mode — background removal is judged on the edges (hair, thin lines, the halo left around a subject), and at the old fixed preview size you could not see them, so you could not tell whether a setting helped. The wheel zooms toward the point under the cursor and dragging moves the image; the buttons remain as the precise fallback.
- Fullscreen keeps the SETTINGS on screen and usable — cleanup, tolerance and softness can be tuned while watching the result at full size, instead of leaving fullscreen for every change. Exit with the button or Esc, and the mode is remembered across reloads.
- Loading a picture no longer looks like a dead tool: a busy indicator appears the moment a file is chosen, and on a replace it is a corner spinner so the previous cutout stays on screen. The indicator also gets a painted frame before the decode blocks the browser.
- The AI model's download percentage is now shown throughout the wait rather than only at the end.
Print & Cut extractorv1.0.0
Changelog
- v1.0.02026-05
- Initial release of the tool.
Engrave prepv1.1.0
Changelog
- v1.1.02026-09-04
- The on-material preview now includes a margin of raw stock around the engraving instead of just the artwork area. You cannot judge an engrave without unburned material beside it — least of all an inverted one, whose whole meaning is relative to the material around it. The stage behind the piece is tinted with the material colour, replacing the transparency checkerboard that made the result read as a floating PNG.
- Clear acrylic and glass are no longer drawn as an opaque grey sheet. They are modelled as what they are: a see-through material that passes whatever is behind it, and an engrave that is a fairly opaque white frost. Those materials get a background switch (dark / light), because that is what decides whether the engraving reads at all — 8.6:1 on a dark background, 1.1:1 on white. The old preview showed light-on-light in both cases, i.e. it lied in both directions.
- Added a low-contrast warning that shows the actual number: walnut at 2.2:1 and leather at 2.4:1 are materials where the burn will always look faint, and no setting changes that. Better to say so up front than to show a handsome preview the material cannot produce.
- Walnut now dithers (Floyd–Steinberg) like every other wood. A 2.2:1 range between stock and a full burn leaves the laser no room for reliable intermediate burn depths, and char on dark wood is uneven — a binary dot works there, a tonal ramp does not.
- Automatic invert is now derived from "this material engraves lighter than itself" instead of being a second field duplicated next to it. Two values that say the same thing can drift apart; one cannot.
Image Vectorizerv1.4.0
Changelog
- v1.4.02026-08-30
- Added "path smoothing" to the advanced panel — it relaxes the lines after tracing. This is different from the existing "Smoothing": that one blurs the image before the trace, so detail is gone before the tracer ever sees it. The new one works on the finished path, so the staircase comes off a diagonal edge and the detail stays.
- It cuts corners (Chaikin) and then emits quadratic curves through the segment midpoints — so the result comes out smoother AND with fewer nodes than it went in with, meaning the file shrinks rather than grows. Each subpath is smoothed separately, so a letter's counter stays its own ring instead of welding to the outer edge.
- 0 returns the original path exactly as it was, not a re-emitted equivalent. A triangle is left alone, because it has no corner that can be cut without shrinking it.
- v1.3.02026-08-30
- Posterise was split across colour channels — red, green and blue separately, as in the advanced tools. That is what lets you crush one channel while keeping detail in another: a red logo on a bluish background, crush blue and keep red. A channel left at 0 simply follows the overall value, and the sliders appear only once posterise is on.
- There is deliberately no alpha channel: both tracing engines ignore transparency entirely, so an alpha slider would look like it worked while doing nothing.
- v1.2.02026-08-30
- Added an "advanced settings" panel — closed by default. While it stays closed the tool behaves exactly as before, and every field inside sits at a value that changes nothing, so even opening and closing it cannot alter the output. A reset button returns everything to stock.
- Image processing before tracing: quarter-turn rotation, brightness, contrast, saturation, sepia and posterise. Posterise is the interesting one — it flattens soft gradients into solid regions, which is exactly what a tracer works best from. Saturation 0 gives greyscale in one move.
- Exposed three tracing-engine parameters that were previously hard-coded: corner threshold (-1 = automatic, as before), minimum path length, and path precision — which directly controls file size.
- Every parameter in the tool, including the existing ones, now has an explanation: hover shows a tooltip, and tapping ⓘ opens the text inline — because hover tooltips do not exist on touch, and most makers are on a phone.
- v1.1.02026-08-28
- New engine: VTracer (WebAssembly) replaces the old tracer — cubic-spline curve fitting instead of polylines, so edges come out smooth instead of jagged. On the logo sample: 247 → 27 paths and 50.9KB → 11.1KB; on a detailed photo 5,679 → 123 paths (2.1MB → 232KB).
- Automatic clean-up: speckles dropped by real px² area, near-identical colours merged (anti-aliasing halos), and zero hairline outlines around shapes (the old engine stroked every fill).
- Fixed: "remove background" actually removes it — the background colour layer is dropped from the SVG (it used to survive as a solid white shape).
- Upgraded preview: fullscreen (Esc to exit), −/%/+ zoom, fit-to-screen, wheel zoom and drag-to-pan, over a checkerboard backdrop for transparency.
Changelog
- v1.0.02026-05
- Initial release of the tool.
Photo to Line Artv1.1.0
Changelog
- v1.1.02026-08-28
- Device-load notice: a big image on a weak machine now warns up front (⏳/🐢) instead of freezing the browser by surprise.
- Cleaner vector exports through the new shared clean-up pipeline — fewer noise speckles and stray lines.
- v1.0.02026-06
- Image-to-line-art launched.
SVG cleaner & editorv1.7.0
Changelog
- v1.7.02026-08-29
- Fixed a significant bug: the "real width" was measured from the file's viewBox rather than from the drawing itself. In a file where the drawing doesn't fill its canvas (empty margins — the normal case), the same number produced a different physical size here than in tools like Layered SVG, which scale the artwork's bounding box to that width. The result: a design thickened here until the check went green still warned there.
- Measured: a 20-unit drawing inside a 40-unit viewBox, entered as 60 mm, came out 30 mm wide here (0.45 mm strokes) and 60 mm wide in the layered tool (0.90 mm) — a factor of two. Entered as 30 mm the gap became 41.9% thin area here versus 0.08% there.
- The width is now always measured from the drawing's own bounds, exactly as the tools you send to do — so the same number is the same physical size, and a fix made here still holds there. The field is now called "Design width", matching the other tools. A regression test comparing both paths was added.
- v1.6.02026-08-29
- The "details thinner than a 0.4 mm nozzle" warning was rewritten to explain rather than alarm. It now says in one plain line what this actually means (the printer lays a 0.4 mm line, and anything thinner doesn't come out), how much of the design is affected — and explicitly points you at the "As it will print" button to see the real result before deciding.
- The warning is now graded by severity: under 4% with nothing vanishing completely it shows as a calm tip (💡) saying this is usually no big deal, instead of an amber warning. Over 10% it says plainly that this is worth fixing before printing.
- The fix advice moved into a "How do I fix this?" disclosure, so one message no longer mixes the physics, the number and the solution in a single line.
- v1.5.02026-08-29
- Undo for every action that changes the file — delete, remove points, clean, thicken and recolour. 20 steps kept.
- Hide colours: the eye toggle takes a colour out of the view so you can see what sits under it. View only — the file you download still has everything.
- The "Send to" menu now lists only tools that are actually published — it was offering a Lab tool that isn't available to users.
- v1.4.02026-08-29
- Colour panel: every colour in the file by how much it covers, and clicking one selects all its shapes on the design.
- Merge colours: pick several and paint them one colour — that's how you merge cut layers. It repaints the channel the shape actually uses, so an outline never turns into a fill.
- The print check moved up the panel, and the thickening result now reports inside the check itself rather than in another panel.
- Send straight to other tools that take SVG (nesting, pre-flight, edge-lit) — and receive SVG from them.
- v1.3.02026-08-29
- Real-world file support: <style> rules are resolved onto the elements themselves, and paint set on a group is inherited by the shapes inside it — a file styled that way previously showed no colours at all.
- Tested against real Wikimedia files: a US states map (160 shapes, colour via CSS), the Ghostscript Tiger (240 shapes, 39 colours) and a 47,100-node world map.
- The nozzle check now honours fill=none inherited from a group — stroke-only outlines are not measured as material.
- v1.2.02026-08-29
- Redesigned: settings rail beside a large live canvas — pick shapes by clicking them on the design, not from a list of numbers.
- Selected shapes are marked in blue on the artwork itself, and each shape highlights on hover.
- The print check is now visual: three modes — normal, won't print (artwork dimmed, thin parts in bright red), and as printed.
- Fullscreen, zoom in/out, drag to pan and scroll to zoom.
- Measurements: the design's real size in mm, plus the size of the current selection.
- Every shape is selectable — including rect, circle and polygon that were never converted (previously they didn't appear on the canvas at all).
- v1.1.02026-08-29
- New manual tools: a shape list with targeted delete, redundant-point removal on straight segments (curves are never touched), and a 0.4mm print check with a fix.
- 0.4mm nozzle check: enter the design's real width and the tool works out how much of the area is too thin to print and how many features would vanish entirely.
- Automatic thickening: grows only the parts that wouldn't have printed — the rest keeps its original dimensions, and material is never carved away.
- Security: scripts and event handlers (onload and friends) are stripped the moment a file is loaded, so the file you download is free of them.
- v1.0.02026-08-29
- New tool — SVG cleaner & editor: load a file, get a plain-language report of what's wrong with it (invisible elements, duplicate shapes, empty groups, transforms, editor attributes, open paths), and clean it in one click.
- The clean reports exactly what it changed: bytes and nodes saved, and how many items of each kind were removed — with a before/after comparison.
- Advanced options: convert rect/circle/polygon to paths, flatten transforms into the coordinates, drop specks by area, and round decimal precision.
- Everything runs in your browser — the file is never uploaded.
Calculators
Job pricing calculatorv2.0.0
Changelog
- v2.0.02026-06
- Block-based pricing calculator — build the quote from parts.
- Save, duplicate, edit and tag jobs.
- v1.0.02026-05
- Pricing calculator launched.
Job-time estimatorv1.0.0
Changelog
- v1.0.02026-05
- Initial release of the tool.
Sheet-yield calculatorv1.0.0
Changelog
- v1.0.02026-05
- Initial release of the tool.
Rotary calculatorv1.0.0
Changelog
- v1.0.02026-05
- Initial release of the tool.
Unit converterv1.0.0
Changelog
- v1.0.02026-05
- Initial release of the tool.
Utilities
Test gridv1.1.0
Changelog
- v1.1.02026-06
- Test-grid export to xTool Studio (.xcs).
- LightBurn (.clb) export.
- v1.0.02026-05
- Material test-grid generator launched.
Heat-press timer & guidev1.0.0
Changelog
- v1.0.02026-05
- Initial release of the tool.
Settings converterv1.0.0
Changelog
- v1.0.02026-05
- Initial release of the tool.
Laser Pre-flight Checkv1.1.0
Changelog
- v1.1.02026-08-29
- “Checking your file…”: a progress indicator now covers the whole window from upload to report — analysing a busy file takes seconds, and before this the drop zone simply sat there unchanged.
- On a re-check (after an auto-fix or a kerf change) the drawing stays on screen with a small corner spinner.
- v1.0.02026-08
- Laser preflight check launched.
3D file checkv1.7.0
Changelog
- v1.7.02026-09-01
- The drawings in the printer chooser were redrawn, each machine to its real frame. Instead of two generic shapes there are now three skeletons — a cantilever hanging its arm off one upright, a gantry bridging two, and a sealed box — because that is the first thing you recognise about a machine across a room.
- Added the real tells: spool on the crossbar, spool on a side arm, a material unit on the roof — the details people actually use to tell two open frames apart.
- The bed is now drawn in true proportion to the largest in the list rather than on an offset scale. With a generous baseline a 180 mm bed and a 256 mm bed came out 83% alike and read as the same machine, which defeats the only reason to draw the bed at all. The difference between an A1 and an A1 mini is now visible.
- The cantilever needed a separate fix: what makes it a cantilever is the absence of a second upright, and the tidy full-width base drawn in the first version reinstated that missing support by implication and made it read as another gantry. The base now stops under the column and the arm carries on to a free end.
- v1.6.02026-09-01
- The printer photos were removed. The only freely-licensed images that exist are incidental hobbyist snapshots rather than product shots, and they made the chooser look worse rather than better. It is back to the drawings.
- The drawing is not a compromise: the plate inside it is drawn to that machine's real bed size, so the difference between an A1 and an A1 mini is visible — information a photograph does not carry.
- v1.5.02026-09-01
- Added real photographs of the printers to the chooser, so you can recognise your machine at a glance instead of reading a model name.
- Every photo is Creative Commons licensed, from Wikimedia Commons, rather than a manufacturer press shot. That is not needless caution: a press image remains the maker's copyright, and a press kit usually licenses it for editorial coverage — not for a tool on a commercial site. A CC licence grants the right up front instead of resting on a fair-use argument, which is a defence decided after the fact, not a permission.
- The attribution — photographer, licence and a link to the source — sits beside the chooser and names which photo belongs to which model. That is a condition of the licence, not a courtesy: without it the permission is void.
- Added a statement that CraftWizard is not affiliated with any printer manufacturer and does not represent them, and that the photos exist only to help you identify your own machine.
- Where the only free photo is of a close variant (K1C, Neptune 4 Max, X1 Carbon with AMS) the picture says so, rather than implying it is exactly the listed model.
- Two printers have no free photo (A1 and A1 mini) and keep their drawing — which carries real information anyway: the plate inside it is scaled to the true bed, so the difference between the two is visible and not merely written.
- v1.4.02026-08-31
- The tool is now a three-step wizard — printer, file, result. Previously every control sat on screen at once above a report you had to scroll to reach; now there is one decision per screen and the answer arrives in view.
- Choosing a printer is visual: each machine is drawn as its type — open frame with a moving bed, or an enclosed box — and the plate inside the drawing is scaled to its real width, so the difference between an A1 and an A1 mini is visible rather than merely written.
- We did not use photographs of the printers: an AI image of a "Bambu Lab A1" is not one, and the official photos belong to their manufacturers. Drawing the machine type is both more honest and clearer.
- On the result screen the model and the answer sit side by side, and the findings scroll inside their own box, so the page never grows and the whole result is visible without scrolling.
- Fixed alignment in the figures row: "52 min" in Hebrew rendered reversed because I forced left-to-right on every value. Each value now picks its own direction from its content.
- v1.3.02026-08-31
- Fixed — "several separate parts… something has probably split in your design" was bad advice. In a layered multi-colour model each colour is a set of islands resting on the layer beneath; that is not a fault, it is how such a print is built. Each body is now tested for whether it rests on the plate or on material below it, and only a body genuinely hanging in mid-air is flagged.
- Deeper fix: asking "is anything below?" with a ray is not enough — a face resting on material sits INSIDE that material, and a downward ray from inside meets no surface until the far side. This now uses an inside/outside parity test, and material only counts as support when it is a layer or two away — material 20 mm below holds nothing up.
- v1.2.02026-08-31
- Fixed — the "needs supports" warning was wrong on layered models. A colour layer resting on the layer below faces downward, so it was flagged as an overhang, even though it sits on solid material and prints perfectly. The right question is now asked: is there anything underneath? A ray is fired straight down from every candidate face, and only a face that hits nothing is a real overhang.
- Fixed — "geometry that cannot exist" on a perfectly good file. Each object in a 3MF is sliced separately, but we merged them all into one triangle soup and then judged topology across the seams between them. A three-colour file reported 410 impossible edges that did not exist. Topology is now evaluated inside each object.
- The preview now shows the model in its real filament colours from the 3MF, with a colour legend. You can see at a glance that you uploaded the right file, and "several separate parts" becomes self-evident instead of a sentence to take on trust.
- v1.1.02026-08-31
- Added a 3D view of the model you uploaded with the problems painted on it: red for overhangs needing support, red/amber for walls thinner than the nozzle or than two printed lines. A list tells you there is a thin wall; the view tells you where.
- Dimensions are now shown as width/depth/height separately, each axis labelled — "60 × 40 × 25" on its own always left the reader guessing which number was the height.
- Added an estimated print time and filament weight, using the same constants every other tool on the site uses. The estimate comes from volume and surface area rather than a real slicer, so it says plainly that ±30% is normal.
- v1.0.02026-08-31
- New tool: upload an STL or 3MF and get a plain-language answer on what will work, what to fix and what would stop the print — before you waste filament. The file stays in your browser and is never uploaded.
- Checked: watertightness (open edges), geometry that cannot exist in a solid, inverted surfaces, separate shells, walls thinner than the nozzle, areas needing support under the 45° rule, build-plate contact, whether it fits the plate, and models floating above or sunk below it.
- Unit mix-up detection: a model that comes out 1.6×1.2×0.8 mm was almost certainly exported in inches — the tool says so and gives the factor that fixes it.
- Every finding reads as "what we saw / what it means / what to do" rather than a red error. For example "takes 157% of the plate — scale to 64% or less", not "ERROR: EXCEEDS BUILD VOLUME".