Changelog

What's new in KulmanLab — shipped continuously, no restart required.

Fillet for arcs & polylines; Export Manager redesign

2026.08.19.23a9785 August 19, 2026
  • Fillet now works on Arc and Polyline segments, not just Line — pick two and the corner rounds in place.
  • Filleting two separate polylines, or a polyline and a loose Line/Arc, now merges them into a single polyline.
  • New: Rectangle gains a Dimensions option — type D, enter a width and height, and it remembers them next time.
  • Export Manager redesigned as side-by-side JSON and DXF columns, each listing the entity types it carries.
  • Font+, Hatch+, Leader+ and Leader- are now FontAdd, HatchAdd, LeaderAdd and LeaderRemove; Lwpolyline is now Polyline.
  • New LayerManager command; Import, Font Manager, Hatch Manager and Page Setup now run as real commands.
  • Fixed: DXF export wrote color, linetype and lineweight out of position, and dropped an explicit hairline lineweight.
  • Fixed: Fillet no longer rounds an already-tangent polyline corner or sweeps the long way around an arc.

Polyline: Arc segments & Explode; Print Manager fixes and Blueprint style

2026.08.16.ae2fea1 August 16, 2026
  • New: Polyline gains an Arc option for placing arc segments while drawing (tangent-continuation by default) — Trim, Extend, Offset, Chamfer, and intersection detection are all arc-aware now, so editing a polyline with arc segments works the same as a straight one.
  • New Explode command breaks a polyline into its individual Line and Arc entities.
  • New: Rotate gains a Copy option — press C to toggle it, and the rotation is applied to new copies instead of the original in place.
  • New: Print Manager's Style selector gains a third option, Blueprint, alongside Default and Monochrome — white ink on a deep Prussian-blue page with a faint reference grid sized to look the same density at any Quality setting.
  • Fixed: Print Manager's preview now renders at the exact same pixel size as the real export instead of approximating it, and changing Quality re-renders it immediately; line weights now scale with print DPI instead of a fixed pixel count, so a line keeps the same physical thickness on paper at any Quality setting (hairline / lineweight 0 stays a fixed 1px, per the conventional hairline definition).
  • Fixed: a selected print area now actually crops layout (paper-space) exports instead of always exporting the whole sheet, including on a layout whose units aren't real mm; monochrome rendering now forces black ink at the source instead of thresholding pixel brightness afterward, removing an artifact that could double a thin line's apparent width.
  • Fixed two polyline-arc bugs found while building the Arc option: Trim could compute the arc immediately next to a cut backwards, and a clockwise arc segment could report intersections on the wrong ~300° span, trimming away far more of the polyline than intended.
  • Fixed: Chamfer's second pick on a polyline now requires a true neighboring segment instead of silently chamfering a non-adjacent pair; extending a polyline's first segment now grows from the correct end and direction.
  • Fixed: Backspace no longer deletes a selection while you're still typing a command.
  • Tuned command-suggestion tie-breaking so Extend ranks above Export and FileManager/Delete rank lower when they share a prefix with another command.

Command suggestions, selection filtering & finish-with-Enter polish

2026.08.13.1df92de August 13, 2026
  • Command suggestions now match letters anywhere in a command's name, not just the start, ranked by match quality and then by how often you actually use each command; the list is mouse-clickable, scrolls to keep the selected suggestion in view while cycling with Tab, caps around 10 rows, and highlights just the matched letters in place instead of overlaying a full ghost word
  • New: selecting many entities shows a filter icon in the property panel header — opens a popup with live checklists for Type, Layer, Color, Lineweight, and Linetype built from what's actually in the selection, so a large mixed pick can be narrowed down before bulk-editing
  • Space/Enter now finishes Hatch, Spline (CV and Fit), Offset, Trim, Extend, Area, and Align, matching how the rest of the app already worked; fixed a Trim bug where a full ellipse/circle cut's rounded stored angle could sit just outside a hatch's boundary tolerance and leave the traced loop unclosed
  • Monochrome print and export rendering is dramatically faster on large plots — replaced a per-shape canvas filter with a single pass over the finished image; a 90,000-entity file that previously wouldn't finish in 30 seconds now renders in about 70ms

Hatch: pick-a-region fill, pattern library & grip editing

2026.08.11.fa6fa31 August 11, 2026
  • New Hatch command — click inside any closed region (Lines, Arcs, Circles, Ellipses, and Polylines meeting at their ends all enclose one, just like a closed Lwpolyline) and it fills with a pattern; anything closed sitting inside is left alone as an island
  • Hatch stays active after filling one area, so a single activation fills as many regions as you like; Escape ends it
  • Pick a fill pattern from a swatch grid in the new Hatch Pattern picker — the built-in ANSI/ISO library plus SOLID — and manage it from Hatch Manager, where you can upload your own .pat files
  • HATCH entities in imported DXF files now render with their real pattern, scale, and angle instead of being skipped
  • Hatches are fully grip-editable — drag a corner or an edge's midpoint to reshape the boundary and the fill follows live; works on straight, arced, elliptical, and now spline edges, including islands
  • Fixed: resizing a hatched circle by its rim no longer drags the whole circle, mirroring a hatch keeps its boundary joined up, and a hatch pick that finds nothing now explains why in the command prompt
  • Richer property panel for hatches — pattern, scale, angle, and origin are all editable directly

Extend: Arc, Ellipse & Polyline support; redesigned File Manager

2026.08.07.ab0f344 August 7, 2026
  • Extend now works on Arc, Ellipse, and Polyline, not just Line
  • Ellipse/Ellipse intersections now detected (needed by Extend and Trim); Polyline/Polyline intersection cost bounded with a bounding-box reject so large drawings stay fast
  • File Manager redesigned as a thumbnail grid — click a thumbnail to open the file, confirm before deleting one, see a placeholder icon for files with no thumbnail yet, and page through large libraries
  • Rename files in place and reorder them; the currently open file is highlighted and can't be deleted from the list; the panel now closes automatically whenever a command starts or a file finishes loading
  • Thumbnails are generated directly from a file's stored entities and are crash-proof — one malformed entity no longer breaks the whole thumbnail
  • Keyboard shortcuts added for text editor formatting; Space now finishes a line chain, not just Enter
  • Fixed lineweight parsing and serialization, and DXF parsing for files with bare LF line endings and unpadded group codes
  • Removed the unused Google AdSense wiring and the Help panel's "Cookie settings" button (ads were never live)

Trim: Arc, Circle, Ellipse & Polyline support

2026.07.26.70984c6 July 26, 2026
  • Trim now works on Arc, Circle, Ellipse, and Polyline, not just Line — hover the segment between two intersection points and click to cut it, exactly like Line trimming already worked
  • Circle, Ellipse, and a closed Polyline (including Rectangle) have no natural start or end, so trimming one now requires at least two intersection points; the piece between whichever pair the cursor is nearest becomes the removed segment, and a Circle trims down into an Arc
  • Fixed several intersection bugs surfaced while building this: Line trim no longer deletes the whole line on a touching (non-crossing) intersection, Circle/Ellipse intersections no longer miss a point that lands exactly on the other shape's endpoint or drift after repeated trims, and Circle/Arc no longer trims straight through an Ellipse without leaving the gap
  • Ellipse previews for Mirror, Rotate, and Trim now render at the correct orientation instead of resetting to the un-rotated axis
  • Legacy DXF POLYLINE entities (the format that predates LWPOLYLINE) now import correctly, including malformed or mesh-style data that previously failed to parse
  • Shapes toolbar reordered (Ellipse, stacked Splines, Arc last), markup toolbar icons grouped by tool family, the Array button restored, and the Dimension Linear icon's grip/arrow sizing fixed

Text editor: paragraph alignment, underline & rotated-text fixes

2026.07.23.49fac9a July 23, 2026
  • New paragraph alignment buttons in the text editor toolbar — Align Left, Align Center, Align Right, and Justify — layered on top of the attachment-point column; available for Text entities only, not Multileader or dimension labels
  • New underline toggle button next to Bold, Italic, and Strikethrough
  • The text cursor now slants to match italic text while editing, matching word-processor convention
  • Fixed click-to-place-caret resolving to the wrong character on text rotated to any angle other than 0°/180°
  • Fixed the text editor popup floating over the text instead of above it for Middle/Bottom-anchored attachment points, and overlapping rotated leader text on Multileaders
  • Fixed per-character height overrides (e.g. mixed font sizes imported from DXF) keeping their absolute size instead of scaling with the entity, on both Text and Multileader

How-to guides (25 languages) & responsive nav polish

2026.07.19.b22f372 July 19, 2026
  • How-to guides and the site header now render cleanly on phones and tablets — the mobile menu includes the new How-to link alongside Docs, Changelog, and FAQ
  • New How-to page with 9 step-by-step guides — opening DXF files, drawing with exact dimensions, organizing layers, dimensioning, measuring distance/angle/area, preparing files for laser cutting or CNC, paper layouts with viewports, printing, and backing up drawings — translated into all 25 site languages
  • Fixed language switching on English pages: with a language saved in the dropdown, pages like Privacy and About now redirect to the fully translated version instead of staying in English with only the navigation labels swapped
  • Shortened overly long page titles (homepage and About page) in 20+ languages so they display fully in search results

Privacy policy, About page & GDPR-compliant consent banner

2026.07.15.0c09002 July 15, 2026
  • New Privacy Policy page explains what data KulmanLab collects — local-only drawing storage, Google Analytics, and the advertising coming to the app via Google AdSense — translated into all 25 site languages
  • New About page tells the story behind KulmanLab — translated into all 25 site languages
  • Added a region-scoped cookie consent banner using Google Consent Mode v2: Analytics defaults to denied until accepted in the EEA, UK, and Switzerland, and to granted immediately everywhere else; a "Cookie settings" link in the footer reopens it at any time
  • Footer trimmed to About, Privacy, Cookie settings, GitHub, and Reddit — App, Docs, Changelog, and FAQ remain one click away in the header
  • Fixed Google Analytics silently not recording custom events (Launch App clicks, outbound link clicks, scroll depth) on the live site — the tracking script was being scoped by the bundler so window.gtag never actually existed

Vector pins: object snap tracking with angle-lock ray snapping

2026.07.12.16f6fe3 July 12, 2026
  • New Vector Pins toggle (Pins) in the control bar — hover a snap point or grip for 500ms to pin it, then track the cursor along dashed horizontal/vertical reference lines through the pinned point, with normal geometry snaps still taking priority
  • Angle-locked rays now snap to the intersection of the locked direction with pin reference lines in Line, Polyline, Arc, Circle, Move, Copy, Area, Leader, and ViewportCopy
  • Distance and Angle now keep their result on screen until Escape, with an accent-colored preview that is dashed while picking and solid once committed; Distance also shows grips at both endpoints
  • Fixed a bug where clicking model entities visible through a layout viewport selected phantom paper-space copies whose edits and deletes silently did nothing — viewport content is now display-only for selection (snapping through viewports is unaffected)
  • Intersection X markers now draw in the accent color instead of green, matching the rest of the snap and preview palette
  • Improved the ANGL control-bar dropdown layout

Align command: translate, rotate & scale with point pairs

2026.07.09.cecea22 July 9, 2026
  • New Align command repositions entities using one or two pairs of source/destination points — translate only with one pair, or translate + rotate + optional scale with two
  • One-point alignment (press Enter at the second source point) works exactly like Move — translate only, no rotation
  • Two-point alignment computes the rotation from the source and destination segment directions, then prompts Yes/No to also scale so the segment lengths match
  • Live canvas preview at every step: a ghost move preview while placing the first destination point, then a dashed rotated preview once both destination points are set
  • Accessible via the new Align button in the Edit toolbar panel, or by typing `align` (as few as `al` is enough) in the terminal
  • Fixed Align prompt wording to match the "pick" phrasing used by other commands

Area measure command & toolbar icon refresh

2026.07.07.dca1eff July 7, 2026
  • New Area command measures the enclosed area and perimeter of a polygon — click 3 or more points, then press Enter to close the shape
  • Area supports angle-locked directional entry: snap to the configured angle-tracking increment and type an exact edge length
  • The closed polygon — fill, outline, and vertex grips — stays highlighted on the canvas until you dismiss the result
  • Measure panel is now a 2×2 grid: Distance and Angle on the top row, Area on the row below
  • Distance and Angle toolbar icons redrawn with solid strokes and a filled wedge instead of dashed lines
  • Area toolbar icon simplified to a chamfered square with vertex snap points
  • Fixed terminal prompt text jumping when the key badge appears

Text editor copy/paste, feedback bar & theme-aware arrowheads

2026.07.01.41031df July 1, 2026
  • Text editor: Ctrl/Cmd+C, Ctrl/Cmd+X, and Ctrl/Cmd+V now copy, cut, and paste the selected text
  • Pasted text always takes on the formatting already at the cursor rather than the formatting it had when copied; rich mode keeps line breaks, simple mode (dimension labels) strips them
  • New feedback bar in the toolbar links to Reddit, GitHub Issues, and email — appears after 10 minutes of use and can be dismissed
  • Arrowhead previews in the Properties panel and arrowhead picker now render in a theme-aware color instead of always white
  • Improved contrast for toolbar panel captions (e.g. "STYLE", "LAYERS") in light theme
  • Coordinate and zoom readout in the toolbar now sit closer to their labels instead of a fixed-width right-aligned column

Text editor modes: rich and simple

2026.06.28.8f3519f June 28, 2026
  • Text editor header now shows a mode chip — "rich" (accent color) for Text and Multileader, "simple" (muted) for dimension entities
  • Double-click any linear, aligned, angular, radius, or diameter dimension to open its label in the text editor
  • Simple mode: editor is pre-seeded with the current rendered label so you can position the cursor with ← / → and edit the value directly
  • Simple mode: pressing Enter commits the value and closes the editor — no line break is inserted
  • Simple mode: bold, italic, font, and height changes apply to the entire dimension label at once
  • Rich mode (Text, Multileader): per-character formatting, multi-line Enter, and word-wrap remain fully supported
  • Blinking cursor now animates inside the dimension text editor popup
  • Text cursor offset corrected — was rendering up to 2× too high after certain font changes

Urdu and Greek — 22 languages, 1 320 pages

2026.06.20.a4f91c3 June 20, 2026
  • Added Urdu (اردو 🇵🇰) — full RTL support using Arabic script; docs, FAQ, and changelog fully translated
  • Added Greek (Ελληνικά 🇬🇷) — complete docs, FAQ, and changelog in Greek
  • KulmanLab now ships in 22 languages: EN, DE, ES, FR, IT, PT, PL, UK, EL, HI, UR, BN, ZH, JA, KO, VI, TH, ID, MS, TR, AR, SW
  • Total site size: 1 320 static pages — all command references, FAQ, and changelogs localised
  • RTL layout applied automatically for Urdu (Arabic script) alongside existing Arabic support
  • Language switcher row added to the site footer — visible plain-HTML links for all 22 locales so search engines can discover every language version without JavaScript
  • All language pages include hreflang alternate links pointing to every other locale

New website: landing page, docs & FAQ

2026.06.12.0269290 June 12, 2026
  • Brand-new landing page at kulmanlab.com — hero with screenshot carousel, feature grid, and a three-step workflow overview
  • Comparison table: KulmanLab vs LibreCAD, QCAD, BricsCAD, and browser-based CAD tools
  • Command reference docs moved to kulmanlab.com/docs with a collapsible tree sidebar
  • FAQ page covering storage, DXF compatibility, features, and privacy
  • This changelog page — release notes for every version
  • llms.txt and full command reference published for AI assistants
  • GitHub repository and r/kulmanlab community links in the site navigation

Text editor polish & web fonts

2026.06.10.580dba5 June 10, 2026
  • Text mirror now adjusts rotation and attachment point for readability
  • Web fonts available in the text editor font picker
  • Cursor height dynamically matches the text size at the cursor position
  • Strikethrough added to the text editor toolbar alongside Bold/Italic
  • Per-row line height and per-character text height & font (MTEXT)
  • MTEXT editor: frame sizing, live resize grip, and font dropdown
  • Empty lines now inherit height from the preceding text row
  • Text editing creates a single undo history entry on close

On-canvas text editing

2026.06.06.c01c797 June 6, 2026
  • Edit text directly on the canvas with a blinking caret — no dialog needed
  • Text selection: Shift+Arrow keys, click, and click-drag
  • I-beam cursor while the text editor is active
  • Text editor toolbar: Bold and Italic toggles with cursor-aware active state
  • Caret and selection follow the active theme accent color
  • Move command shows a fully-opaque shadow preview of entities being moved
  • MTEXT wrap frame with four side-midpoint resize grips
  • Text frame grips work on text without an explicit reference width

Angle tracking, snap-to-grid & MTEXT

2026.06.03.7a0070a June 3, 2026
  • Configurable angle tracking: 10°, 15°, 20°, 30°, 45°, 90° increments via toolbar dropdown
  • Angle tracking arc indicator shown in sticky mode with crash recovery
  • Snap-to-grid toggle with dot grid rendered at grid intersections
  • Grid dots drawn on layout paper space, not inside viewports
  • Custom scale input added to the viewport scale dropdown
  • Multi-line MTEXT parsing and rendering with wrap box
  • Adaptive coordinate display precision scales with zoom level

Keyboard X,Y entry for all commands & leader improvements

2026.05.31.c0decec May 31, 2026
  • Type X,Y coordinates at any point prompt across Line, Polyline, Circle, Arc, Rectangle, Ellipse, Spline, Move, Copy, Rotate, Scale, Mirror, and more
  • Space bar confirms numeric input across all commands
  • Copy command is now sticky — place multiple copies until Enter or Esc
  • Distance and Angle measure commands now support keyboard entry with canvas labels
  • Dimension linear/aligned/continue support keyboard X,Y entry
  • Dimensions inherit the current color, linetype, and lineweight from the toolbar
  • Leader and Leader+/− improved: chain mode, X,Y typing, cursor navigation in text input
  • ViewportCopy and ViewportRectangle commands support X,Y point typing
  • Highlight locked length input in terminal prompts

Print manager overhaul & toolbar icon redesign

2026.05.27.60851ce May 27, 2026
  • Ctrl+P / Cmd+P intercepts browser print and opens the KulmanLab print manager
  • Print manager: zoom and pan the preview canvas, area selection mode
  • DPI/quality selector for PNG and WebP export
  • Exported PDFs now include title, creator, and date metadata
  • Render layout viewports in print manager preview
  • Layout context menu: rename layouts, delete layouts, right-click to open
  • Layout tabs: add, rename, delete layouts with alphanumeric validation
  • All toolbar icons redesigned: teal accent color, custom SVGs for Move, Mirror, Extend, Trim, Scale, Copy, and more
  • Dimension markup icons: grips on all arrow endpoints, improved arrow geometry
  • Paper format label shown on page manager preview
  • Ctrl/Cmd+P intercepted to prevent accidental browser print dialog

Layout mode & viewport editing

2026.05.24.1a2d9cf May 24, 2026
  • Select, move, and grip-edit viewports in layout space
  • Scroll and pan model content inside a selected viewport independently
  • ISO 5455 scale selector in the control bar; apply viewport scale live
  • Snap to model entities through viewport transforms in layout mode
  • Draw entities on layout paper space
  • Grid drawn inside viewports in layout mode
  • Undo/redo now covers layout entities and viewport structure changes
  • Lock toggle for viewports in the control bar
  • Auto-fit to paper when switching between layouts
  • Lineweight toggle button in the control bar

Toolbar redesign & layer commands

2026.05.21.4ddef0d May 21, 2026
  • Layer panel moved into the main toolbar with a two-row layout and larger icons
  • Teal (#4A8580) introduced as the app accent color
  • All toolbar panels restructured: Shapes, Edit, Markup, Navigate, Measure, Style
  • LayerIsolate command: freeze all layers except the active one
  • LayerUnfreezeAll command: unfreeze all layers at once
  • LayerMatch command: copy the layer from one entity to others
  • Match Properties available as a big-button in the Style panel
  • Toolbar labels renamed: ByLayer → From Layer for color, lineweight, and linetype
  • Command names rendered in UpperCamelCase in cursor widget and terminal
  • Enter/Esc/Space/Delete rendered as key chip badges in terminal prompts

Match Properties, color picker & Properties panel

2026.05.18.8af6a0c May 18, 2026
  • Match Properties command: copy color, layer, linetype, and lineweight between entities, supports area selection
  • Properties panel added to the toolbar showing entity details
  • Color selector in the toolbar with ByLayer/ByBlock support
  • Linetype selector in the Properties panel
  • Lineweight picker with graphical bars and ByLayer resolution
  • Lineweight support for all dimension entities
  • Persist layer, color, linetype, and lineweight settings across page refreshes
  • Google Material Symbols Outlined replaces older toolbar icon set
  • Default sample file loaded on first launch

Angular dimension command

2026.05.15.56cc287 May 15, 2026
  • DimAngular command: measure angles between two lines or on arcs and circles
  • Angular dimension grips: radial/tangential snap modes for arc-endpoint grips
  • Text position controls (vertical and horizontal) for angular dimensions
  • Extension line extension (dimexe) applied to angular dimensions
  • Angular dimension arc correctly splits when text is inside
  • Arrowhead geometry: tip positioned at extension line, base midpoint on arc
  • Properties window is content-sized when small and scrollable when tall

Dimension grips, extension lines & arrowhead picker

2026.04.30.8731507 April 30, 2026
  • Grip editing for all dimension entities: tips, arrowheads, and text position
  • Extension line offset (DIMEXO) and extension (DIMEXE) rendered per DXF spec
  • Arrowhead picker: square preview with leader line stub, filters anonymous blocks
  • Dimension text attachment point (group code 71) respected on import
  • Dimension hit-testing restricted to lines and text — not the full bounding box
  • Origin tick rendered as a dot sized to match line width

Command terminal & line chaining

2026.04.28.e887839 April 28, 2026
  • Full command terminal: history log, command recall with arrow keys, floating layout
  • Line command is now continuous and chainable — each segment feeds the next start point
  • Tab cycles through command suggestions; arrow keys navigate the suggestion list
  • Blinking cursor in terminal during numeric input phases
  • "Command >" prefix shown while typing a command name
  • Leader+ command: append a new arm to an existing multileader
  • Polyline midpoint grips added — drag to insert a vertex or move the whole segment
  • Cancel active command when a new command is activated

Multileader command (MLEADER)

2026.04.25.37963b5 April 25, 2026
  • MLEADER command: draw a multileader with arrowhead, dogleg, and text block
  • Angle locking for multileader arrowhead, arm vertex, and dogleg grips
  • Length input while angle-locked in MLEADER command
  • Green X marker shown at the locked endpoint during angle-locked drawing
  • Circle command: radius line preview and intersection marker on canvas
  • Ellipse command: axis-locked length input added
  • Unified prompt vocabulary across all commands
  • Default multileader landing gap increased from 0.09 to 0.2

Command terminal (preview) & UI improvements

2026.04.21.3ee6fcd April 21, 2026
  • Early version of the full command terminal with history and suggestions
  • Blinking cursor added to terminal for numeric input phases
  • Ellipse grip editing with constrained orthogonal axes and on-canvas preview
  • Toolbar overflow fixed on narrow windows; status bar layout restored
  • Coordinates widget shown when there is enough horizontal space
  • Tab command suggestion cycling introduced

Angular upgrade, docs site & adaptive grid

2026.04.15.5fcb626 April 15, 2026
  • Upgraded from Angular 19 → 20 → 21 with block control flow syntax
  • Full command reference documentation site launched
  • Adaptive CAD grid added to the canvas
  • History panel added to the toolbar (Undo / History / Redo)
  • Documentation button added to the help panel