Skip to content

Raindrop Release Notes

Find out what's new and what's fixed.

🦟 Report bugs here 🚨 or ⬇️ Download Current Version Now⬇️


2026-10-31 - Version 2026.10.31.7

Bug Fixes

  • Repeated update prompts: Production installs now refresh stale local updater versions on startup, preventing prompts for updates already installed. Current or newer versions are preserved, and each installation keeps its update channel.

2026-10-31 - Version 2026.10.31.6

Improvements

  • Controller zone details: Zone rows show the first sprinkler's series and design pressure, or Drip and its stored pressure when available. Empty zones stay blank. Details populate when opening or switching drawings and when selecting a controller.

2026-10-31 - Version 2026.10.31.5

New Features

  • Planting schedule options: In Settings > App > Planting schedule, choose uniform or drawing-size symbols, set uniform symbol size and minimum vertical padding, select columns, set body/header text sizes and a drawing text style, and optionally use all caps. Changes save automatically as app defaults and apply to newly placed schedules across drawings. The default text style matches plant labels and is imported when needed.
  • Irrigation legend formats: Under Settings > App > Irrigation legend, choose the existing symbol-and-text layout or a CAD table with Symbol, Description and Quantity columns. Set separate body/header text sizes, choose a drawing text style, and optionally enable All caps. Preferences save automatically across drawings. Table symbols retain their inserted scale and align with the table, including when rotated to the view.

Bug Fixes

  • Saving plants with long notes: Plant notes longer than 255 characters now save in full without interrupting Settings.

Improvements

  • Legend settings layout: Planting and irrigation use clearly labeled, matching sections in App Settings with consistent text, style and column controls.
  • Pipe class ordering: Simplified CL160, CL200, SCH40, HDPE SDR9 and HDPE SDR11 selections appear directly below their complete catalogs.
  • Planting schedule layout: Rows accommodate symbols and wrapped or multiline text, with centered content and space above and below. Uniform mode uses consistent plant-row heights; drawing-size mode preserves inserted symbol sizes. Schedule sizing leaves placed plants unchanged. Legend symbols retain their plant layers and display properties; plants on different layers appear in separate rows.

2026-10-31 - Version 2026.10.31.4

New Features

  • More simplified pipe classes: Choose CL160 PVC, SCH40 PVC, HDPE SDR9, or HDPE SDR11 in simplified 1-inch, 2-inch, and 3-inch selections. Each uses the same dimensions and roughness as its full catalog, alongside the existing simplified CL200 option.

2026-10-31 - Version 2026.10.31.3

October production release, including changes since Version 2026.10.4.

New Features

  • Plants along a polyline: Press P during Insert or Paint to draw a path with a live preview or select an existing open polyline. Adjust the plant and minimum spacing, review clearance and skipped vertices, then click or press Space/Enter to place the row.
  • Simplified CL200 pipe class: Choose 1-inch, 2-inch, or 3-inch CL200 pipe with the same dimensions and roughness as standard CL200 PVC.
  • Enki in AutoCAD: Open the Enki assistant in standard AutoCAD Release builds. Four irrigation-themed working animations remain visible while drawing tools run.

Improvements

  • Enki reference access: Enki can consult the full help wiki as needed, including guidance for distinguishing legend examples from the installed design. Choose from the hosted model list; dollar totals are no longer shown in the palette.
  • Terrain warnings: Coverage and elevation problems appear in the Warnings palette and command line without interrupting analysis with a dialog. Review these warnings before relying on hydraulic results.

Bug Fixes

  • Pipe labels: Zone sizing respects Label End Pipes, preserves labels at actual size changes, removes obsolete labels, and retains required labels on shared sections.
  • Plant path interaction: Starting a path, moving the cursor, undoing vertices, and typing Finish or Place work without the earlier geometry errors or shortcut conflicts.
  • Planting schedules: Botanical names appear before common names, and millimeter drawings use metric text sizing.
  • Enki approvals: Stopping, reconnecting, finishing a turn, or switching drawings expires pending approvals.

2026-10-31 - Version 2026.10.31.2

New Features

  • Enki in Release: Open Enki in standard AutoCAD Release builds.
  • Working animations: Four irrigation-themed animations rotate each turn and continue while drawing tools work.

Bug Fixes

  • Terrain coverage warnings: Coverage and elevation problems appear in the warnings palette without a blocking analysis dialog.
  • Enki approvals: Stopping, reconnecting, finishing a turn, or switching drawings expires pending approvals.

Improvements

  • Enki usage display: Turn and session dollar totals are hidden; costs remain in operator logs.

2026-10-31 - Version 2026.10.31

Improvements

  • Enki reference access: Enki can consult the full help wiki as needed, including guidance for distinguishing legend examples from the installed design.
  • Enki model selection: Choose from five hosted models; usage costs remain available in operator logs.

2026-10-30 - Version 2026.10.30.2

New Features

  • Plants along a polyline: Press P during Insert or Paint to draw a path with a live plant preview or select an existing open polyline. Adjust plants and spacing before confirming the row with a click or Space/Enter.
  • Clearance feedback: Plants prioritize vertices and divide each segment evenly at or above the selected minimum spacing. Review actual spacing, skipped vertices, and clearance conflicts before confirming. Preview colors follow the plant layer.

Bug Fixes

  • Plant path keywords: Typing Finish or Place no longer triggers plant or spacing shortcuts.
  • Plant path drawing: Starting a row, moving the cursor, and undoing vertices no longer cause a geometry error.
  • Planting schedule names: Botanical names now appear before common names, matching the column heading.
  • Metric planting schedules: Millimeter drawings now use the same metric text-size selection as meter drawings.

2026-10-29 - Version 2026.10.29

Bug Fixes

  • Pipe labels: Zone sizing no longer adds an unnecessary end-pipe label when Label End Pipes is off and the source pipe has a different size. Labels at actual size changes are preserved.
  • Repeated zone labeling: Obsolete labels are removed before new labels are placed, and shared sections keep their required size labels.

2026-10-15 - Version 2026.10.15

New Features

  • Simplified CL200 pipe class: Choose 1-inch, 2-inch, or 3-inch CL200 pipe without browsing the other CL200 sizes. The three sizes use the same dimensions and roughness as standard CL200 PVC.

2026-10-04 - Version 2026.10.4

Bug Fixes

  • Plant library startup: Plant library and Planting settings initialize on fresh installations without a missing SQLite library error.

2026-10-01 - Version 2026.10.1.4

New Features

  • Planting tools: Paint plants with spacing and erase controls, fill boundaries with a grid, or preview and place mixed planting layouts with one undo step.
  • Plant palettes and imports: Create, copy, and share reusable plant lists. Import missing plants from files or HTTPS links and add whole palettes to drawings.
  • Expanded plant library: Browse 9,499 plants, including 908 additions and seven reference lists. Added plants have canopy and symbol diameters, with estimated sizes identified.
  • Coverage origin: Choose a new Tweak Coverage origin without moving the sprinkler symbol.
  • Fitting allowance: Set a shared hydraulic pipe-friction allowance, defaulting to 10%.

Improvements

  • Planting workspace: Search the library beside drawing plants, resize columns and panes, and right-click to edit drawing plants or My Plants. Personal palettes and symbols remain available across drawings.
  • Command displays: Placement tools show shortcuts and live values with adjustable text size and visibility.
  • Terrain performance: Faster elevation lookups and background preparation reduce sizing delays; unchanged terrain is retained across drawing switches.

Bug Fixes

  • Hydraulic calculations: Correct selected-zone demands, looped mainline connections, short source laterals, pipe segment lengths, zone pressures, and pump summaries. Millimeter drawings use metric conversions consistently.
  • Terrain and legends: Existing contours work without proposed grading. Obsolete contour references are removed safely, valve legends no longer require terrain, and sensors appear in legends.
  • Drawing stability: Prevent duplicate tool palettes, skip erased coverage boundaries, and keep deferred work with the correct drawing.
  • Planting reliability: Long Paint strokes remain visible without flickering; failed imports can retry, saved palette symbols are preserved, empty palettes stay empty, and controls follow the selected theme.

2026-08-31 - Version 2026.8.31

New Features

  • Name pressure-loss valves in analysis: Add an optional Analysis Label to each backflow, isolation valve, or other pressure-loss valve in Object Properties. Find Critical, CZA, and Excel reports use the label so identical symbols are easy to distinguish; unlabeled valves continue to use their catalog description.

Improvements

  • Ground Treatment cleanup is faster: Select one or more Ground Treatment rows and remove them together with the new Remove Selected button. The confusing blank add-row is gone; Add from Drawing remains the way to add treatments.
  • Uniformity colors describe actual conditions: Heat maps now show red for dry areas, green around the zone average, and blue for wetter areas. Uniform zones no longer look artificially dry because of color scaling.
  • Settings stays out of your way: Non-critical problems while Settings closes or imports are written to the command line and logged instead of forcing you through repeated alert boxes.
  • Mainline Analysis uses the Hydraulics tab: The Mainline Analysis command now opens the Hydraulics tab in the Raindrop palette instead of a separate legacy window.

Bug Fixes

  • Safer drawing switching: Rapid drawing switching no longer mixes drawing context or crashes AutoCAD during deferred palette refreshes. Sprinkler, valve, pipe, plant, controller, Clock, terrain, and hydraulic views stay tied to the drawing that requested them.
  • Save corruption prevented: Saving settings and hydraulic logs no longer leaves orphaned drawing-dictionary records that can lead to multiply-owned-object warnings and unrecoverable save corruption. Existing damaged drawings still require repair.
  • Legend POCs stay inactive: A point of connection inserted into an irrigation legend is no longer treated as a live hydraulic source. Activate the real source when you are ready to analyze.
  • Sprinkler palette refreshes after Settings: Adding or removing project sprinklers in Settings updates the open Sprinklers palette immediately. A valid selection is preserved; a removed selection is cleared.
  • Terrain layers stay per-drawing: Existing and proposed contour layers are no longer saved into or imported from default settings. New drawings and Restore Defaults no longer inherit another drawing's survey layers.

2026-08-20 - Version 2026.8.20

Bug Fixes

  • Boundary layout keeps drawings valid: Boundary Layout no longer writes an empty XData section that AutoCAD AUDIT reports as an XData format problem. The standard XData write path now checks for empty sections and overlong string values before saving.

2026-08-10 - Version 2026.8.10

Fixed

  • Licensing now continues normally when a removable drive or card reader does not provide a disk serial number.

Improved

  • Plant palettes are now available in Settings. Create a palette for any plant list, add or remove plants, and copy a built-in list before customizing it.
  • The plant catalog opens on your selected palette to keep large plant libraries manageable, with a full-catalog search available when you need to find another plant.
  • Add every plant in a palette to the project at once, keeping any palette-specific symbol choices.

2026-07-31 - Version 2026.7.31

New Features

  • Settings dialog redesigned: Sidebar page navigation with a search box that jumps to a page or an individual field. Terrain and Ground Treatment now have their own pages. The window remembers its size and position.
    • Sprinklers page is a catalog browser — search by manufacturer, pick a body, choose pressure, review nozzles, and add to the project in one click. Rotor bodies link to product pages; a Qty column shows how many are placed.
    • Planting page — one searchable catalog of your plant library merged with the drawing's plants, with a slide-in editor for each project plant. A "Save to library" button makes a plant reusable across projects. The symbol picker follows the app theme with larger thumbnails.
    • Pipes page — every pipe category in one editable table (class, sizes, layer, plot width) with Inline Drip beneath it. Search finds it by "mainline", "sleeve", or "drip".
    • Hydraulic Sizing & App pages refreshed with labeled fields; arrow sizes moved here, with a new Mainline Flow Arrows toggle.
    • Project page grouped into Project, Layer Prefixes, Scale & Units, and Symbols & Labels, with per-field search.
  • Strip sprinklers draw rectangular coverage: Side, center, and end strips now show a rectangle matching their real throw, following the head's rotation in every tool. Uniformity and Weighted Area include strips by their rectangular footprint. Strips work in metric drawings.
  • Tweak Coverage is a full hand-adjust tool: Aim by cursor, size by distance, swap nozzles with Q/A, change arc with W/S, cycle presets with E. A live readout shows nozzle, flow, radius, arc, and application rate. Runs continuously across heads.
  • Tweak Coverage rotates the symbol with the arc: With Rotate on, adjusting aim rotates the sprinkler symbol to match the coverage wedge, live and after commit. Ortho snaps to 90°. Full-circle heads are unaffected.
  • Label Uniformity Boundaries: Drops a text summary (uniformity, DU, scheduling coefficient, precipitation rate, calc time) at each analyzed boundary's center on its own printable layer.
  • Boundary Layout: Lays sprinklers around the perimeter of one or more closed boundary polylines at once.
  • Ground Treatment — Add from Drawing: Imports a ground treatment for each hatch layer you select.
  • Terrain multi-pick: Pick several contour layers in one action; Set Elevation checkboxes default on.

Improvements

  • Uniformity runs the whole site at once: Both Uniformity and Operational Uniformity accept every boundary in one selection, with per-boundary numbers plus a combined site total. A zone with a required depth but no runtime auto-runs Weighted Area; a zone with no depth is skipped with its valve flagged. Overlapping-boundary heads are flagged in the Warnings palette.
  • Coverage starts at the install point: Part-circle heads against a boundary anchor their arc where the head is installed, not the symbol center. Operational Uniformity matches. Re-run Set Radius or Reset Coverage to update existing drawings.
  • Coverage finds the right bed automatically: Every layer with "boundary" in its name is a bed outline; each head binds to the bed it sits inside.
  • Polyline layout in real units: Max Spacing prompts in feet or meters, not drawing units. A strip's default spacing is its strip length; too-small spacing is caught.
  • Plant abbreviations propagate: Changing a plant's abbreviation updates existing labels and legend cells in the drawing. Abbreviations are restricted to letters, numbers, and spaces.
  • Uniformity opens instantly: Saved analysis restores on drawing open instead of recomputing. Drawings with boundaries and pipe networks open faster.
  • Flow arrows use the correct size: Mainline and lateral arrows use their respective sizes across CZA, Run Scenario, and Find Critical.
  • Sprinkler catalog cleanup: Filled in missing product links; removed discontinued models; golf rotors listed under their own manufacturer names.
  • Settings opens faster and follows the light theme.

Bug Fixes

  • Drawing-switch crash fixed: Rapid drawing switching no longer crashes AutoCAD from a database race.
  • Laterals and controllers in inventories: Lateral pipes and controllers no longer are excluded from quantities and legend. existing drawings need a re-draw or zone sizing.
  • Palette toggles show the drawing's real settings: Toggles stay correct across drawing switches and after Undo. Show Radius renamed to Show Coverage.
  • Symbol draw order fixed: Shadows and masks stay behind the symbol, label text on top. Run Fix Draw Order to repair existing symbols.
  • Coverage arcs match the sprinkler: Placing a head with Rotate off no longer draws the arc 90° off; rotating while placing turns the arc to match.
  • Tweak Coverage Q/A keys work reliably: Nozzle cycling works in drawings with inherited block definitions.
  • Coverage arcs anchor correctly on curved boundaries: Arcs anchor to the true closest point on the curve, not an internal control point.
  • Paint Pipe hop fixes: Hops no longer dropped on lateral-mainline crossings; two crossing laterals draw one hop; stray hop under valves removed.
  • Plant labels get an abbreviation: Added plants always get a capitalized abbreviation; special characters in names no longer error.
  • Planting palette refreshes after a symbol change.
  • Valves Auto Rotate toggle displays correctly.
  • Valve Plot Size saves to the palette.
  • Settings no longer crashes on a detached terrain XREF.
  • Removing a contour layer no longer warns.
  • Duplicate rows in project plants grid fixed.
  • Removed dead legacy commands: Two superseded commands — IR_WeightedArea_old (the region-boolean weighted-area tool, replaced by the arc-aware IR_WeightedArea) and IR_MainlineAnalysis_old (a dangling reference with no command behind it, only reachable from an orphaned WinForms control never shown in any palette) — have been removed. Neither was used in the last 30 days of production logs; the live UI paths already open the Mainline Analysis palette and run Weighted Area through their current commands.

2026-06-30 - Version 2026.6.30

Bug Fixes

  • New users weren't shown the trial sign-up prompt: On a fresh machine with no license, opening a drawing is supposed to offer a free trial, but the sign-up window silently failed to appear — leaving new users unable to start a trial. The trial activation window now appears reliably.

Improvements

  • Trial sign-up reassures you about your email: The trial activation window now notes that your email won't be shared or sold and is only used to send your trial key.

2026-06-28 - Version 2026.6.28

New Features

  • Tweak Coverage: A new Tweak Coverage button (and the IR_TweakCoverage command) lets you hand-adjust one head's aim and arc interactively. Pick a sprinkler — or its coverage arc — then move the cursor to aim it, press / to cycle the sweep through 90/180/270/360, use . and , to widen or narrow by 5°, and click to set. A live preview shows the wedge and the current angle as you work, and the radius circle is turned on automatically so you can see the result.
  • Erase Coverage: A new Erase Coverage button (and the IR_EraseDesignArcs command) bulk-erases coverage arcs. Window-select as much of the drawing as you like — only the coverage arcs are removed, the sprinklers stay — so you can clear coverage and regenerate it fresh with Set Radius.

Improvements

  • Set Radius re-snaps coverage to the boundary: Set Radius (Actual) and Set Radius (Percentage) now re-snap each head's spray arc to whatever boundary it sits near after the radius change — handy after copying or moving heads into a different bed, where the old arc no longer matches. Heads away from a boundary keep their stored arc. Set the boundary layer first with the … picker on the Sprinklers palette. (Set Radius (Percentage) at the default 100% is the quick way to reset a head's coverage to its full design.)
  • Weighted Area follows each head's real coverage: Weighted Area now sizes each head's share from its actual coverage arc instead of treating every head as a full circle, so a part-circle head contributes proportionally less than a full head at the same radius. Heads without a coverage arc have one drawn automatically, the calculation no longer leaves a second set of coverage wedges behind (the coverage arc is the single coverage shape), and the controller palette refreshes on its own when the run finishes.
  • Coverage edits stay with copied heads: Adjusting, erasing, or recalculating the coverage on a head you copied now acts on that head — not the original it was copied from. Coverage arcs and their sprinklers are matched by how they're bound together, which survives copying, instead of a stored reference that didn't.

2026-06-26 - Version 2026.6.26

Bug Fixes

  • Zone sizing double-counted duplicate pipes: When lateral pipes were accidentally stacked directly on top of each other (for example, left behind by a copy), zone sizing treated each duplicate as a separate length of pipe — inflating the zone's sprinkler count and flow (a 13-sprinkler zone could size as 24). Raindrop now detects laterals lying on top of one another, keeps a single copy, removes the extras automatically, and flags the zone in the warnings palette so the sizing matches the real layout.
  • False "wet spot" in Operational Uniformity on curved boundaries: On a zone whose boundary contained large curved (arc) segments, a genuine full-circle head could be wrongly read as a part-circle and painted as a roughly circular area applying several times too much water — even though every head used the same nozzle. Raindrop now measures the boundary's curves correctly, never clips a head that is explicitly full-circle, and the uniformity report no longer rewrites your saved nozzle arcs while it runs. Re-running IR_CalcArcByRadius resets any head an earlier version had clipped.

2026-06-19 - Version 2026.6.19

Bug Fixes

  • The Settings window can be moved again: The Settings dialog can now be dragged by its title bar; previously it was stuck in place.
  • Save As Default could wipe your default library: "Save As Default" now stores the current drawing's sprinkler, valve, and plant libraries (along with your settings) into the default drawing, and only replaces a category when the current drawing actually has items in it. Saving from a drawing with few or no sprinklers can no longer empty your default library, and it now warns you if a library couldn't be saved instead of reporting success.

Improvements

  • Settings actions grouped into one menu: The Import Settings, Restore Defaults, and Save As Default buttons at the bottom of the Settings dialog are now a single Settings menu, so they're no longer easy to mistake for part of whichever tab (Sprinklers, Pipes, …) you're viewing.
  • Restore Defaults restores your full default: Restore Defaults now reloads your complete default — project settings plus the sprinkler, valve, pipe, and plant libraries — the way a brand-new project starts. Anything already placed in your drawing is kept, your app/machine settings are left alone, and it asks for confirmation first.
  • Import Settings dialog refreshed: The dialog for importing settings from another drawing was rebuilt to match the rest of Raindrop.

2026-06-06 - Version 2026.6.6

Bug Fixes

  • Demand labels were colored backwards: A demand label now turns red when its node does not have enough pressure and blue when it does. Previously the colors were inverted, so under-pressure nodes looked fine and adequate nodes looked like problems.
  • Crash when inserting a sprinkler: Inserting a sprinkler could fail with an internal error when the drawing contained a block that had just been erased. Erased blocks are now skipped during the elevation pass, so insertion completes cleanly.
  • Open zones reset when switching drawings: With a scenario set on the Zones tab, switching away from a drawing and back could re-check every valve (or clear them all) and, worse, overwrite the saved set of running zones. The Hydraulics palette now reloads exactly the zones you had open and no longer rewrites that state on a document switch.
  • Duplicate demand labels on a re-run: Re-running a scenario could stack a new demand label on top of the existing one at a sprinkler. The old label for each sprinkler is now cleared before the new one is placed.

Improvements

  • Demand labels on the critical zone: Running Find Critical now places demand labels on the critical zone's sprinklers and a zone label on its control valve, matching what a full scenario run shows.
  • Zone label shows the worst sprinkler's pressure: The available pressure on a zone label now reflects the zone's worst (lowest-pressure) sprinkler instead of the pressure at the control valve, so it lines up with the required pressure shown beside it.

2026-06-01 - Version 2026.6.1

Bug Fixes

  • Drawing-switch lock errors and unwanted Raindrop init on non-irrigation drawings: opening a drawing with no Raindrop irrigation entities while another Raindrop drawing was already loaded could log lock-violation errors and silently import master valve block definitions into the new drawing — effectively promoting it to a Raindrop drawing on every open. Raindrop now decides whether a drawing is an irrigation drawing from the entities actually present in it, rather than from leftover settings, so palettes stay hidden and nothing is imported on drawings that contain no irrigation work. The lock-violation errors that could appear while switching between open drawings are also resolved.

2026-05-27 - Version 2026.5.27

Bug Fixes

  • Crash when opening a second Raindrop drawing: After closing one Raindrop drawing and opening another in the same AutoCAD session, the second drawing could throw Object reference not set to an instance of an object partway through loading and leave the drawing in a half-loaded state. The master valve and sprinkler lists were holding per-drawing block-table references from the previous drawing that became invalid once that drawing closed. They no longer cache per-drawing references — block lookups now resolve fresh against the active drawing on every use, so opening drawing after drawing in the same session is clean.

2026-05-21 - Version 2026.5.21

New Features

  • Zone summary labels on control valves: A new Zone Labels toggle on the Mainline Analysis palette drops a summary label on each zone's control valve when you run a scenario, showing the zone ID, elevation, demand, lateral loss, and required and available pressure. Labels refresh in place on a re-run (preserving any manual scale/style edits) and clear when the toggle is turned off, independently of the per-node Demand Labels.
  • Place a zone label by hand: A new Zone Label button on the Mainline Analysis palette (and the IR_ZoneLabel command) lets you pick a control valve or its designator and drag the summary label into place, just like the Pipe Size Label tool. It uses the values from the last scenario run, so labels match what a full run would show.
  • More pipe sizes: Added HDPE SDR11 (0.75"–16") and the previously-missing HDPE SDR9 2.5" to the imperial pipe database.

Bug Fixes

  • Find Critical Zone could report garbage from a parallel-solve race: When zones solved in parallel, concurrent EPANET runs could collide on a shared scratch file and silently produce non-physical results that were then reported as the critical zone. Each solve now runs in isolation, and any zone that fails a post-solve sanity check (velocity, demand, NaN/Inf) is automatically re-solved on its own — so a race can no longer poison the result.
  • Find Critical Zone wiped the POC's supply pressure every run: The clear-stale-data step was deleting the point-of-connection's supply-pressure input along with solver output, leaving the network starved (an HGL of 0 and impossible negative pressures). POC supply pressure is now preserved; a POC with no pressure set and no booster pump solves at 0 PSI and warns, so you can read off the minimum required supply pressure instead of getting garbage.
  • Placed demands were erased on every scenario run: Re-running a scenario wiped the demands you had placed, collapsing the model down to just the active zone. Placed demands are now durable and survive a run, so you can add and remove zones incrementally. (Use IR_ClearDemands to clear them explicitly.)
  • Corrected pipe dimensions in the imperial database: Several HDPE SDR9, C900 (6"), and C905 outside diameters were wrong — C905 even listed an inside diameter larger than its outside diameter — which could skew hydraulic sizing. They now match published AWWA C900/C905 (cast-iron OD) and IPS HDPE dimensions. Also merged a duplicated "Toro Blue Stripe" drip-tubing class that had been split in two by a spelling difference.

Improvements

  • Scenario reports all running stations: Multi-zone runs now name each running demand by its station tag (e.g. "A5") and list every running station in the summary and Excel report, with "Critical Demand (Total)" shown for whole-system demand. The status line counts all running zones, not just open control valves.
  • Faster scenario builds: Large drawings build the combined scenario network noticeably faster — lateral and sprinkler matching now uses a spatial grid instead of rescanning every lateral polyline per zone.
  • Add Demand skips a redundant prompt and shows a running total: IR_AddDemand now picks one valve at a time and reports the running system demand total after each pick, so you can add zones up to a target total. It applies a control valve's existing design demand without re-prompting; it only asks for a value on valves that don't have one yet.
  • Pipe list is sorted: The pipe-class dropdown now follows a consistent order (PVC by pressure class, then HDPE, large-diameter C900/C905, copper, and drip tubing) and sizes within a class are listed smallest to largest.

2026-05-20 - Version 2026.5.20

Bug Fixes

  • Paint Pipe couldn't reconnect a link after the pipe was erased: After painting a lateral and then erasing the connecting pipe, Paint Pipe (PP) still treated the two ends as connected and refused to redraw the link. The command's in-memory lateral network was being built from a model-space scan that returned erased pipes, so a deleted lateral kept "connecting" its endpoints. Erased entities are now excluded from that scan, so re-painting an erased connection draws the new lateral as expected.
  • Painting a lateral from a control valve ignored sprinklers: Starting a paint stroke on a control valve switched off sprinkler detection for the rest of that stroke, so heads swept on the way were silently skipped — you had to break the stroke with an extra vertex click to get them. A valve at the start of a run is now kept as a clean starting point (it only ends a run when reached after sprinklers), so you can paint straight from the valve through its heads in one motion.

Improvements

  • A valve may only have one lateral exiting it: Painting onto a control valve that already has a lateral attached now reports Valves can only have one pipe exiting the valve. and leaves the existing connection untouched, instead of snapping a second pipe onto the valve.
  • Paint Pipe reports skipped duplicate segments: When a stroke would draw a lateral that already connects the same two points, the command now says so on the command line instead of dropping the segment silently.

2026-05-14 - Version 2026.5.14

Bug Fixes

  • Find Critical Zone produced impossible pressure results on Inch-unit drawings: CZA on a drawing whose units are set to Inches reported residual pressures ranging from roughly −10⁷ to −10⁵⁴ PSI. The hydraulic code decides whether a drawing is metric with a "greater than Feet" check, which also caught Inches — so the node-side HGL ↔ available-pressure conversion used the metric factor (10.1972) while the link-side head-loss calculation used the imperial factor (2.31). The mismatch turned what should be an identity round-trip into a ~23× amplifier that compounded link-by-link across the network. Inches is now correctly treated as imperial. Drawings in Feet and genuinely metric (Meter / Millimeter) drawings are unaffected.

New Features

  • IR_ClearAnalysis command: Wipes every EPANET analysis result — pressures, flows, velocities, friction, HGL, and warnings — from every entity in the drawing, after a Yes/No confirmation prompt. Zone-sizing data is left intact (use IR_ClearSizingData for that). Useful for getting a clean baseline before re-running Find Critical Zone on a drawing that may carry stale analysis data.

2026-05-13 - Version 2026.5.13

Improvements

  • Sprinkler Grid palette button renamed from "Triangular Grid" to "Sprinkler Grid" to reflect that the command handles both triangular and rectangular layouts (toggle with G mid-drag).
  • HUD callout now shows three lines above the work area, updating live as you drag the grid: sprinkler series + nozzle + design radius + flow per head; current grid type + spacing (rows + cols in rectangular mode); and a running total head count + combined flow. Same line works in metric (LPM) for metric drawings.
  • HUD callout positioning rewritten so it sizes and places itself consistently and honours the view's rotation. Previously the callout could land off-screen in rotated views, or in Meter-unit drawings where view magnitudes disagreed; it now stays anchored above the work area.
  • Dimension labels resized to match the sprinkler symbol size (was 2× the symbol size), so the cell-edge dimensions sit alongside each sprinkler at the same visual scale instead of dominating the preview.
  • Sprinkler Grid Q/A cycles full-circle heads only, skipping past half- / quarter- / part-circle variants in the series — a grid wants full coverage, not a quarter-circle pointed somewhere. If you launch the command with a part-circle pre-selected on the palette, the command auto-snaps to the nearest full-circle in the same series and writes the new flow rate to the command line. Full-circle detection covers every Raindrop naming convention encountered in the bundled data: the _Full ID tag set by the sprinkler form (Hunter PGP / I-25 / I-40 / Rain Bird 5000 with bare-number nozzles), the literal "Full" substring, and any -F / -<digits>F marker at a non-alphanumeric boundary (8F / 15F sprays + MP rotators, SPR-MP800-SR-F, Toro PR-F, R13-18F Rain Bird R-Series). Half / quarter suffixes (-H, -Q, -FQ, -FH) deliberately don't match. IR_InsSprinkler still cycles all variants, so edge heads and corner heads place exactly as before.

2026-05-12 - Version 2026.5.12

Improvements

  • Paint Pipe (PP) snaps to existing laterals across the full paint radius: The snap-to-lateral now reaches the entire visible paint circle. Previously only a small zone near the click would connect, so most of the circle was inert. It's also reliable on state-plane / UTM drawings, where it could previously miss a lateral entirely, and it lands the junction right on the existing lateral so the two pipes become a real connection.
  • Paint Pipe network-aware total flow: The running N Sprinklers (X GPM) readout during a paint stroke now counts every sprinkler reachable through pipes already connected to what you're painting — not just the heads you cross on the current stroke — so the total reflects the whole connected lateral network. Crossing into an existing network or snapping onto an existing lateral folds its heads in without double-counting.

New Features

  • Sprinkler grid command (IR_SprinklerGrid + Sprinklers palette button): Fills a closed polyline boundary with a triangular or rectangular array of the currently selected sprinkler. Pick the boundary, pick two points for grid angle (with a live sprinkler-symbol-on-cursor preview so you can line the throw radius up against the perimeter), then drag the whole grid to position. Live keymap during the drag — all changes update the preview in real time:
  • Q / A — cycle through sprinkler series and nozzles; spacing snaps to the new head's design radius
  • W / S — increase / decrease row spacing
  • D / F — decrease / increase column spacing (rectangular mode only)
  • R — rotate the grid around the cursor pivot, with live preview of the new orientation
  • G — toggle between triangular (60° offset rows) and rectangular (perpendicular) layouts
  • Esc cancels; left-click commits all heads in a single transaction Cell-edge dimensions and a HUD callout (series, nozzle, radius, flow) render at the cursor and at the top of the viewport. Edge margin field on the palette — signed percentage of design radius — controls how far inside (or outside, with negative values) the boundary the heads sit. Defaults to 50% and persists across drawings in %APPDATA%\Raindrop\UserPreferences.json; last-used grid type also persists. Curved (arc) boundary segments are handled natively.

2026-05-01 - Version 2026.5.1

New Features

  • Arc-aware sprinkler coverage in Uniformity: corner heads, edge heads, and interior heads each compute the right precipitation rate based on what fraction of their disk lands inside the boundary. Mass-conservative on every test geometry — Applied volume cannot exceed Demand.
  • IR_CalcArcByCurve / IR_CalcArcByRadius: two new commands that infer each sprinkler's nozzle arc and aim direction from the boundary geometry. Method 1 uses closest-point + segment + vertex-proximity (so a head near a polyline vertex picks up the interior angle of the corner). Method 2 uses the half-radius circle's intersections with the boundary (the inferred arc is the complement of the angle subtended by the chord). Both write the inferred Arc Angle and Aim Rotation to the sprinkler's XData and draw a magenta arc preview on the IRR-ArcInference layer for visual verification. IR_ClearArcPreview wipes the overlay.
  • Auto-inference in IR_Uniformity: picking a boundary now runs the half-radius arc inference on every in-boundary head before computing the depth field, so the typical "corner heads = 90° pointing inward" pattern is modelled correctly without a separate command run. The command-line summary reports how many heads got each arc class (full / half / quarter / other).
  • Demand / Applied / Waste palette rows: the Uniformity panel now shows total water emitted by the sprinklers, total water that lands inside the boundary (integrated over the sample grid), and the gap between them as overspray loss in gallons (imperial) or litres (metric). Negative Waste flags a non-physical math state.
  • [AR-Compare] debug block: every IR_Uniformity run prints zone-design AR, sampled-grid AR, and catch-can AR (when cans are placed) side-by-side along with the demand vs applied volumes, both to the AutoCAD command line and to debug.log under a greppable [AR-Compare] prefix.
  • Properties palette Coverage category: a new section groups Arc Angle, Aim Rotation, Area, and Individual Application Rate (renamed from "Individual Precipitation Rate"). Arc Angle and Area refresh together — editing Arc Angle in the palette or via the inference commands recomputes Area as π·R² × Angle/360. Aim Rotation displays in degrees CCW from East regardless of internal storage.
  • App-wide Uniformity runtime: setting the runtime in the Uniformity palette now persists across drawings via a JSON file at %APPDATA%\Raindrop\UserPreferences.json. Set it once and your value comes back when you open any other drawing.
  • Elevation health probes in the Analysis Warnings card: The Mainline Analysis warnings card now surfaces a stats summary (sprinkler count, median Z, range, and per-POC elevations) on every CZA / Find Critical run, so the underlying numbers are always visible at a glance. Three probes flag specific failure modes: an active POC stamped at Z=0 while the rest of the network is elevated (the precise fingerprint of the CZA elevation bug fixed below), a terrain model configured in Settings but no entity actually stamped, and per-zone single-node outliers whose Z is far from the zone's median (fingerprint of an entity inserted after the last terrain save). Each warning includes a one-line remediation hint
  • Refresh Elevations button: A new button on the Analysis Warnings card rebuilds the terrain elevation cache and re-stamps Z onto POCs, pumps, valves, sprinklers, and RCVs — the same code path as the IR_ElevationModel command. Idempotent and safe to click anytime, so users can fix elevation drift in one click without leaving the analysis palette. Re-run the analysis afterward to see updated results

Improvements

  • Uniformity runtime default raised 15 → 60 min: depth-in-inches now reads directly as in/hr in the metrics panel without dividing by 4. Uniformity ratios (CU, DU_lq, SC) don't depend on runtime so this is purely a labelling change.
  • Just-run boundary auto-selects in the palette dropdown: running IR_Uniformity on a new or existing boundary now selects that zone in the dropdown so the metrics panel updates immediately.

Bug Fixes

  • Critical Zone Analysis returning impossible residuals: CZA on drawings with applied terrain elevations could report residuals as negative as −2500 PSI and mark drip zones as FAILED. POC reservoir blockrefs (and pump blockrefs) were excluded from the Terrain Settings bulk Z-stamp — only valves, sprinklers, and RCVs were included — so POCs sat at Z=0 even after the rest of the network had real ground elevations applied. The hydraulic model computes a reservoir's HGL as available_pressure × 2.31 + elevation, so a POC at Z=0 produced an HGL equal to the supply pressure head only. With junctions at real elevations (say 5839 ft) but the reservoir at HGL ~185 ft, EPANET saw the supply sitting thousands of feet below the network and static pressure went hugely negative; PBV setpoints couldn't reduce a head that was already negative, so EPANET diverged on the drip zones (and reported nonsense flow values like millions of GPM as a downstream artifact of the failed solve). POCs and pumps are now included in the terrain bulk-update so their blockref Z reflects ground elevation. After upgrading, run Settings → Terrain Settings → Save once (or click the new Refresh Elevations button described above) to push Z onto existing POCs and pumps
  • Applied volume could exceed Demand on small boundaries: the depth-field PR boost was driven by boundary-clipped area fraction, while the integrated depth is profile-weighted. Asymmetric clips (boundary trims the low-profile-weight outer rim of a head's disk) over-corrected, producing a non-physical 11 % overcount on a 4-sprinkler / 3241 sqft test. The PR boost now comes from the inferred nozzle arc; mass conservation holds because the inferred arc matches the in-boundary disk fraction.
  • Sprinkler.Area now reflects nozzle arc: a 180° head shows π·R²·0.5 sqft instead of π·R². Area recomputes when Arc Angle changes via the Properties palette or the inference commands.
  • Sprinkler aim rotation persists in XData: rotation now round-trips via XData slot 5; older drawings missing the slot fall back to the BlockReference rotation as before.

2026-04-29 - Version 2026.4.29

New Features

  • Measured sprinkler profiles: Uniformity analysis now uses published catch-can data for supported Hunter and RainBird heads (Hunter I-20/I-25/I-40, MP1000/MP2000, PGP; RainBird 1804MPR, 5000/5000-MPR/5000-PRS, 6504, 751, 8005, Eagle 900) instead of the triangular default. Mixed zones still work — sprinklers without a published profile fall back to triangular automatically. Each Run prints how many sprinklers matched a measured profile.
  • Application rate metrics: The Uniformity palette now reports min, max, and average application rate (in/hr or mm/hr) alongside the existing depth metrics.
  • Total Demand and Boundary Area: New rows under Applied Volume in the Uniformity palette so you can sanity-check Avg App Rate against factor × demand / area directly.
  • Measured Profiles list: Dedicated expander in the Uniformity palette showing each unique head whose published catch-can profile was used in the Run. Each row plots the raw radial distribution as a blue curve with sample-point markers, axis ticks at 0/25/50/75/100% of the disk radius, and a hover crosshair that reads out the radius and depth at the cursor. The chart stretches to the palette width and re-renders on resize.
  • Field-condition disclaimers: Two muted notes at the bottom of the palette flag whether a Run used measured catch-can data (lab-conditions caveat) or the triangular fallback. Both warn that wind, grade, nozzle adjustments, and head wear cause real-world deviation.
  • Drawing-activate restore: Re-opening a drawing that had IR_Uniformity run in a previous session now repopulates the palette automatically. The boundaries tagged with UNIFORMITY_GRID heat-map solids are detected on drawing switch and the analysis is re-run for each so the metrics panel and zone combo come back to life without a manual rerun.
  • Zone zoom on combo pick: Picking a different zone in the boundary combo pans/zooms the drawing to that zone's boundary. Programmatic selections (Run, drawing-restore) skip the zoom so the camera doesn't jump on every analysis.

Bug Fixes

  • Application rate over-count on big-disk-in-small-boundary configurations (#539): The arc-fraction estimate sampled the disk perimeter at r = R, which gave the wrong fraction for heads sitting deep inside a boundary smaller than their disk (perimeter mostly outside the boundary even though most of the disk's area was inside). Avg App Rate could come out 3.5× over the zone-level rate as a result. Replaced with equal-area stratified sampling across the disk (16 × 16 = 256 sample points), which reads the correct in-boundary area fraction in all configurations — heads on edges, heads in corners, and heads with disks extending well past the boundary.
  • Profile data files now ship with the installer: The 14 measured-profile JSON files are now registered in the MSI as a dedicated Profiles_Imperial component. Previously they only existed in the dev tree, so end-user installs fell back to the triangular profile for every head.

Improvements

  • Uniformity profile chart: New per-head inline chart shows the raw catch-can sample curve (blue line + filled area), starts at the chart's left edge, displays distance ticks in feet at 0/25/50/75/100% of the disk, and supports hover-to-read with a dashed crosshair and floating readout label.
  • Uniformity palette layout: Results panel is now scrollable so the heat map, audit metrics, and measured-profile expanders never get clipped on long zones. Color ramp lives inside the heat-map expander so it collapses with the map. Disclaimers moved to the bottom in muted italics.
  • Tooling: .claude/actions/build.sh resolves the repo root relative to the script, so the build wrapper works regardless of where the repo is cloned.

2026-04-27 - Version 2026.4.27

Bug Fixes

  • Startup update prompt no longer silent: The auto-update prompt at launch reliably fires again. A recent change replaced the Advanced Installer Updater check with an in-app HTTP check that required a configuration file (updatesConfiguration.txt) the MSI never installs, so it always reported "up to date" and the updater never ran on startup. The startup path now invokes updater.exe directly — which reads updater.ini independently and does not depend on any other file — and the HTTP check is kept only for the toolbar's "available version" tooltip
  • Dev installs frozen on the production URL: Dev installs whose updater.ini was written long ago with the production update URL (/updatesConfiguration.txt instead of /dev/updatesConfiguration.txt) are now repaired automatically on launch. MSI Action=0 IniFile rows preserve existing entries on reinstall, so a wrong URL written by an early dev installer could not be overwritten by any subsequent install. Channel detection now reads ApplicationName from updater.ini, so production installs are untouched
  • Stale ApplicationVersion in dev updater.ini: Dev users could be stuck with an ancient ApplicationVersion value (e.g. 1.5.114.0) that the same Action=0 freeze prevented the MSI from refreshing. The Advanced Installer Updater compared that stuck value against the server, so users were prompted to update every check cycle even immediately after updating. The value is now refreshed in place to the running assembly version on launch for dev installs only
  • Crash on pipe class change with Mainline Analysis palette closed (#540): Changing the active pipe class in the property grid no longer crashes AutoCAD when the Mainline Analysis palette has not been opened this session. The palette's network-changed event handler was dereferencing its ViewModel before it had been constructed — the ViewModel is built lazily on first refresh, and refresh is skipped while the palette is hidden as a performance optimization. The handler now no-ops when its ViewModel hasn't been built
  • Latent palette refresh NREs: Five static "refresh palette" helpers in AID_Palettes (Quantities, Sprinklers, Clock, Pipes, Plants) had the same shape as the bug above — null-conditional on the view but not on the ViewModel — meaning any non-palette code calling them at startup or before the palette had been opened could crash. All five now silently no-op when the ViewModel isn't built. Two sibling helpers (Valves, Drip) already used the safe pattern

2026-04-26 - Version 2026.4.26

Bug Fixes

  • Dynamic sprinkler layout swap with elevations (#483): When dynamic layout was used on drawings with a terrain/elevation model, placing a new sprinkler on top of an existing one stopped erasing the existing sprinkler and re-routing any attached lateral pipe. The proximity check was including Z (elevation) in the distance calculation, so any non-zero elevation on the existing sprinkler pushed the computed distance past the swap threshold and the swap branch was skipped entirely. Distance is now computed in the XY plane only. The connected-lateral re-route logic had the same bug plus a tolerance typo and is also fixed
  • Swap on exact insertion-point pick: Picking the new sprinkler exactly on an existing one's insertion point now reliably triggers the swap. The candidate fence was widened slightly so a click landing at the symbol center still catches the existing block, and a guard that was rejecting zero-distance hits was removed
  • Lateral pipe geometry preserved across swap: When a swap re-routes a connected lateral, only the single vertex at the swap end is moved. All intermediate vertices, bulges, hops, widths, layer, and XData (including valve-ID tags) are now preserved. Previously the lateral was rebuilt from scratch as a straight two-point polyline, which collapsed any routing the user had drawn between the two ends
  • Valve and sprinkler tabs missing entries after PURGE/ENDIT (#443): Running AutoCAD's PURGE or ENDIT strips block definitions for valves and sprinklers that aren't currently placed in the drawing, which previously caused those entries to disappear from the valve and sprinkler palettes. On every drawing open, Raindrop now re-imports any valve in the master library that's missing from the drawing, and for each sprinkler series with at least one entry in the drawing, re-imports any series-mates whose blocks were purged. Block defs come from the user's custom template first, then the factory template, matching the existing fallback used elsewhere

2026-04-25 - Version 2026.4.25

Bug Fixes

  • Settings layer dropdowns now alphabetical (#519): Layer pickers on the Settings → Pipes tab (Inline Drip plus all 7 pipe-type pickers — Mainline, Sprinkler Lateral, Shrub Drip Supply, Drip Supply, Sleeve, Point Source, Tree Drip) now display layers in alphabetical order instead of AutoCAD's layer-table insertion order
  • Hydraulic Sizing label dropdowns also benefit: Lateral Label Layer and Mainline Label Layer pickers are now alphabetical
  • Synthetic layers preserve sort: When stored XData references a layer that doesn't yet exist in the drawing, the placeholder entry now lands in correct alphabetical position rather than being appended at the bottom

2026-04-24 - Version 2026.4.24

Bug Fixes

  • Stale valve associations after zone resizing: Pipes, sprinklers, and design arcs no longer accumulate AID-V-* valve-ID tags from prior zone assignments. When a pipe or sprinkler moves between valves, only the current valve's tag remains; when an entity leaves a zone entirely (e.g. disconnected from the network), the tag is cleared. Previously, anything that queried zone membership by XData (selection filters, drawing inventory, labeling) could produce wrong results because entities appeared to belong to multiple valves at once

2026-04-23 - Version 2026.4.23

Bug Fixes

  • Crash on fast drawing switches: Eliminated the ExecutionEngineException that could occur when rapidly switching between open drawings. MLeader style initialization no longer re-writes the style (and triggers a FlushGraphics walk over every MLeader entity) when the drawing already has the target values
  • Drawing initialization storm: Drawing initialization now runs once per drawing open instead of on every activation, so switching drawings is noticeably faster and no longer re-runs settings/log/boundary loads on every tab click
  • Document-event safety: Document deactivation handlers (settings save, boundary save, hydraulic log save) now operate on the specific document being deactivated instead of whichever Active.Document happens to point at mid-switch. The document lock is acquired before the transaction starts, preventing mismatched-db-and-transaction crashes that were a second crash mode under the same repro
  • Wrapper leaks: Fixed several Forgot to call Dispose? accumulations during drawing switches — ViewTableRecord returned by GetCurrentView(), MText wrappers at pipe/plant/utility label sites, and DBDictionary wrappers returned from NODHelper.GetNamedDictionary/ReadNamedDictionary. The latter also fixes a bug where GetNamedDictionary returned a zombie wrapper bound to an aborted transaction

2026-04-22 - Version 2026.4.22

New Features

  • Terrain coverage warning: When a CZA run finds pipe endpoints that fall outside your terrain model's coverage area, a modal warning now surfaces on the first run per drawing with sample coordinates so you can extend the terrain model. Repeat runs on the same drawing don't re-prompt but still log the details for diagnosis.

Bug Fixes

  • Critical Zone Analysis pressure results: CZA now completes correctly on drawings where pipes fall outside the terrain model. Previously a single out-of-hull pipe endpoint would abort the entire elevation pass, leaving most pipes at elevation 0 and producing wildly unrealistic EPANET pressures (thousands of PSI). Pipes outside the terrain hull now gracefully use the nearest hull-edge elevation instead of throwing
  • Main Line Analysis palette buttons: Run Scenario and Critical Zone now work on the first click even when the palette opened without auto-building the network. Previously they appeared to do nothing in that state — the buttons depressed visually but silently returned, leaving the zones grid empty
  • "Unknown command" console noise: Editing reservoirs, pipes, or hydraulic links in the mainline palette no longer echoes Unknown command "PUBLISHMAINLINENETWORKEVENT" to the AutoCAD command line. Five callers were missing the internal command prefix added in an earlier refactor
  • Quantities export to Excel: Export no longer fails with a ClosedXML load error in the CAD host process. The exporter was rewritten on top of Syncfusion.XlsIO (the library already used for hydraulic and runtime reports) with all prior formatting preserved — grouped products, collapsible layer sub-groups, alternating row shading, per-group subtotals, grand total, and currency-formatted price formulas

2026-04-21 - Version 2026.4.21

Bug Fixes

  • Paint Pipes flow callout: Flow text callout now stays above the cursor in all painting directions — it no longer dips below the cursor during right-to-left strokes where it could be hidden by the cursor, command line, or the user's hand
  • Paint Pipes back-painting: You can paint back over a sprinkler that was already snapped to earlier in the same drag. The rubberband re-anchors to whichever sprinkler the cursor is currently over, and duplicate pipes are no longer drawn when a lateral already connects two sprinklers
  • App settings persistence: Logging and app settings (diagnostics, session logging, debug file logging, command tracking, log server, user alias, paths) now save immediately when toggled in App Settings. Previously changes only persisted on a clean AutoCAD shutdown, so updates or crashes could lose recent changes

2026-04-18 - Version 2026.4.18

New Features

  • Distribution Uniformity palette: New analysis tool computes Christiansen DU, scheduling coefficient, deficit percentage, and applied gallons per zone, with a heat-map visualization of precipitation depth across each boundary
  • Catch-can audit: Import physical catch-can readings to validate predicted uniformity against measured field data. Catch-can spacing is auto-detected from the sprinkler layout following IA CLIA rules
  • Per-zone analysis: Zone dropdown in the palette syncs the heat map and metrics to the selected zone; hover the heat map for an instant depth read at any point
  • Operational mode: Recompute uniformity using each zone's actual configured runtime, not just the design assumption
  • Probe and explain commands: IR_ProbeDepth reports the computed depth at a picked point; IR_ExplainDepth shows which sprinklers contribute to that depth and by how much
  • Multiple boundaries: Each boundary keeps its own uniformity grid, so different zones in the same drawing can be analyzed and displayed simultaneously
  • New commands: IR_Uniformity, IR_ProbeDepth, IR_ExplainDepth, IR_ClearUniformity, IR_ClearExplain

Improvements

  • Boundary-clipped arcs: Sprinkler spray arcs are clipped by boundary geometry instead of relying on stored Angle XData, eliminating drift when sprinklers or boundaries are edited
  • Industry-standard color ramp: Heat map uses red=dry / blue=wet and normalizes to each zone's actual maximum depth, so red always means "actually dry" rather than a fixed threshold
  • Configurable grid resolution: Default grid resolution per unit (1 ft imperial, 0.25 m metric) with a user-settable override; resolution and units are now visible in the palette
  • Imperial and metric parity: PR math, displayed units, and grid resolution all respect the active drawing units
  • AdjustedRadius in properties: The adjusted-radius value now shows in the properties palette for sprinklers
  • Drawing-switch safety: Uniformity results and cache clear automatically when the active drawing changes, preventing stale heat maps from carrying over

2026-04-15 - Version 2026.4.15

New Features

  • Control Wire support: Draw control wires from the Clock palette with inventory tracking and cost reporting
  • Grounding Assemblies: Insert grounding rods and grounding plates from the Clock palette
  • Sensors: Insert rain sensors and moisture sensors from the Clock palette

Improvements

  • EPANET remote diagnostics: Solver errors (timeouts, missing exe, invalid models) now logged to Loki with full context for remote troubleshooting
  • Enriched error messages: "Invalid Mainline Model" now includes node, link, reservoir, and demand counts
  • Template path fix: Plugin template always loads from the bundle, ensuring updates reach users immediately
  • Document locking: Factory insert methods include defensive document locks for palette/callback safety

2026-04-13 - Version 2026.4.13

New Features

  • V2 Theme System: All palettes now respect AutoCAD's dark/light mode setting (COLORTHEME)
  • Properties palette V2: Migrated from MahApps/MaterialDark to Syncfusion V2 theme with PropertyGrid
  • V2 Toolbar: New common toolbar with IconPacks icons, zero MahApps dependencies
  • Size Zones without a POC: Size All Zones and Size Selected Zones now work even when no POC is active. Zones are sized for flow and velocity without residual pressure analysis.

Bug Fixes

  • Better "no data" messaging: Replaced misleading "Ensure a POC is active" alerts with accurate messages when the drawing simply has no lateral pipes or sprinklers.
  • Combined analysis hint: When Combined Mainline Analysis fails to build a network, the prompt now points users at Size All Zones as the no-mainline fallback.
  • No-mainline warning: Valves sized without a connected mainline now raise warning 107 ("Residual pressure not calculated") so the missing analysis is visible in the Warnings palette.

Improvements

  • Startup performance: Drawing initialization reduced from ~70s to ~8s on large drawings with controllers. Drawings are interactive in ~4s with palette data loading in the background.
  • Background clock loading: Clock/controller tab data builds off the main thread with a loading indicator, keeping AutoCAD responsive during palette population.
  • Updated accent colors across dark and light themes for better visual consistency
  • Toolbar icons now correctly follow the active theme (fixed StaticResource binding)

2026-04-07 - Version 2026.4.7

New Features

  • Paint Pipes DrawJig: Rewrote Paint Pipes (PP) command as a DrawJig for smoother painting experience — brush circle, rubberband, and flow text render natively without stutter
  • Batch pipe creation: Paint Pipes now writes all pipe segments in a single transaction instead of one per segment
  • View-relative paint brush: Brush circle scales with zoom level, adjustable via Q/A keys (persists across drawings)
  • Sprinkler/valve caching: Repeat PP commands reuse cached lists for faster startup on large drawings
  • Parallel zone sizing: SpatialGrid-based O(1) lookups for zone building (up to 38x faster), parallel CZA solving
  • Size Zones buttons: New Size Zones / Size All Zones buttons in toolbar using CommandWrapper pattern

Bug Fixes

  • Elevation model fallback: Fixed GetElevationPoint convex hull fallback clobbering pipe X,Y coordinates — pipes outside DEM triangulation had endpoints silently relocated to hull boundary, breaking zone routing
  • ValveID XData on sprinklers: Parallel zone sizing now writes ValveID XData to sprinklers and design arcs (was only writing to pipes)
  • SpatialGrid FindNear radius: All network grid lookups now use radius-aware FindNear to prevent entities at cell boundaries from being silently missed
  • Paint Pipes chain break: Fixed numSprinks never incrementing on AutoCAD path, causing pipe chain to break after each segment
  • Stale node grid: Fixed node grid not rebuilding after valve/pump processing

Improvements

  • Pipe hops: Paint Pipes adds hop crossings after batch commit
  • Valve placement transients: Accumulated path + rubber band visible during valve placement
  • Flow text UX: Perpendicular positioning relative to travel direction, green blink on sprinkler catch, freezes position when over caught sprinkler
  • Paint circle scale: App-level setting (PaintCircleScale) in GlobalConfigs.json, default 0.015
  • Cursor hidden during paint: AutoCAD crosshair hidden while paint jig active, restored on exit

2026-04-02 - Version 2026.4.2

Bug Fixes

  • Fixed weighted areas failing on drawings with Z elevations — sprinkler positions now flattened to XY plane for area calculations
  • Fixed irrigation legend crash (eInvalidInput) on pipes with non-constant segment widths
  • Fixed pipe hops inserting vertices with zero width, which left pipes in inconsistent state

Improvements

  • Added diagnostic Loki logging for weighted area region creation failures and legend pipe width errors

2026-03-30 - Version 2026.3.30

Bug Fixes

  • Fixed drawing path logging to Loki on close events — was logging the active document's path instead of the closing document's path when multiple drawings were open

Improvements

  • Drawing path now included in all close event logs for better diagnostics

2026-03-26 - Version 2026.3.26

Improvements

  • Error handling at managed/unmanaged boundary crossings now catches exceptions, logs to Loki, and shows a friendly error dialog instead of crashing AutoCAD
  • Error dialogs now show a clean user message instead of raw stack traces
  • License validation errors now logged to Loki instead of Console

2026-03-20 - Version 2026.3.20

New Features

  • Default CV Loss: Toolbar input (default 5 psi) applies fallback pressure loss to control valves with no loss configured in EPANET model
  • POC Name Property: Point of Connection name now displayed in mainline analysis results and Excel reports

Bug Fixes

  • RequiredPressure Update: Find Critical now updates RequiredPressure from critical station design pressure during iteration
  • CZA Results Persistence: Switching away and back to the same drawing no longer clears analysis results
  • UI Text: Uncalculated summary now says "Find Critical Zone" instead of "Find Critical"
  • IsInternalModification Safety: Flag wrapped in try-finally to prevent permanent stuck state on exception
  • Polyline3d Leak: Fixed undisposed Polyline3d in elevation model convex hull fallback

Improvements

  • EPANET temporary files (.inp, .rpt, .log) now written to %TEMP%/Raindrop_EPANET instead of the drawing folder
  • Removed "Pressure Drop" button from toolbar (accessible via entity properties)

2026-03-19 - Version 2026.3.19

New Features

  • Add Layer Commands: New IR_MakeLayer and LS_MakeLayer commands to quickly create layers with the configured irrigation or landscape prefix. Dialog includes prefix dropdown, layer name input, and Make Current checkbox. New layer inherits the current layer's color.

2026-03-18 - Version 2026.3.18

New Features

  • Session Log Toggle: New setting on the App tab to enable/disable local session logging (.md files alongside drawings)

Improvements

  • Settings tabs reordered: Project tab now first, App tab moved to last
  • "General" tab renamed to "Project" for clarity
  • Settings tab navigation uses typed enum instead of fragile integer indices

Bug Fixes

  • Fixed NullReferenceException crash when opening Settings on corrupted or unnamed drawings
  • Fixed session log files being written even when session logging was disabled

2026-03-08 - Version 2026.3.8

New Features

  • Critical Zone Analysis (IR_CZA): New IR_CZA command performs mainline + zone hydraulic analysis in a single run with Excel report output
  • CZA Palette: Interactive palette with Find Critical iteration, zone status coloring, and zoom-to-zone highlighting
  • User Valve Selection: Combined analysis prompts user to select which control valves to analyze instead of auto-detecting
  • Dynamic Pressure Loss Valves: Backflow and master valve pressure losses pulled dynamically from drawing entities
  • Booster Pump Support: Critical path traversal includes pumps, reporting pressure gain in output and Excel report
  • DRCV Bubbler Zone Support: Drip control valves can now build zone networks for bubbler system analysis

Improvements

  • Excel report uses formulas for minor losses, pressure sums, and residual calculations
  • Locked file handling appends (1), (2) suffix when Excel or EPANET files are in use
  • Mainline friction calculation uses EPANET pressure subtraction for accurate looped network results

2026-03-02 - Version 2026.3.2

New Features

  • Date-Based Versioning: Switched from semver (1.5.x) to date-based format (YYYY.M.D)
  • Toolbar Redesign: Action buttons on top row, version/license info on compact second row
  • Update Tooltip: Version number now shows incoming update version when available
  • Grafana Loki Logging: Migrated remote logging from Seq to Grafana Loki

Improvements

  • Custom log server endpoint now configurable in Settings
  • Toolbar spacing tightened for a more compact layout
  • Green check icon shows when client is up to date

2025-12-20 - Version 1.5.113

Bug Fixes

  • Fixed valve, controller, and pump symbols inserted at wrong size when drawing units are inches
  • Added PumpPlotSize minimum to prevent zero-size insertions
  • Fixed copy-paste comments in ControllerFactory

2025-12-15 - Version 1.5.112

Bug Fixes

  • Fixed 'Not a block reference' error when sizing pasted valves (valve paste designator handle)

2025-12-10 - Version 1.5.111

Bug Fixes

  • Fixed sprinkler rotation with non-world UCS and view twist alignment
  • Fixed sprinkler polyline layout when UCS differs from WCS
  • Fixed legend creation breaking with non-world UCS
  • Fixed paint pipe flow callout positioning to prevent hiding behind prompts
  • Fixed drawings always showing as unsaved after save

New Features

  • Added pump support to irrigation legend
  • Added construction warnings to solver results and show on network load

Improvements

  • Optimized FixDrawOrder to use single SelectAll call
  • Legend now creates at origin and transforms once (UCS-safe)
  • Reduced Keygen API request volume by improving cache behavior

2025-11-28 - Version 1.5.110

New Features

  • Mainline Analysis: Pump and source properties are now editable directly in the Mainline Analysis form
  • Mainline Analysis: Bidirectional sync between properties palette and Mainline Analysis form
  • Mainline Analysis: Construction warnings now display immediately when the form loads

Bug Fixes

  • Fixed pumps not appearing above pipes in draw order
  • Fixed duplicate pump property update loop in solver results display

Improvements

  • Optimized FixDrawOrder performance by reducing from 8 drawing scans to 1
  • Enhanced solver status messages to show warning/error details

2025-10-31 - Version 1.5.100

New Features

  • Bubbler & Drip Systems: Added support for Hunter and RainBird bubbler products, plus RainBird XFD drip line products
  • Pump Tools: New hydraulic pump insertion feature with pump power calculator
  • Mainline Analysis: Redesigned UI with better organization and improved Excel report generation

Bug Fixes

  • Fixed crash in inline drip grid caused by product data issues
  • Fixed MainLine Analysis grids not refreshing after hydraulic calculations
  • Fixed multiple EPANET calculation errors affecting pressure and flow results

Improvements

  • Equipment databases now load faster from installation folder
  • Improved mainline analysis reports with clearer formatting
  • Updated licensing system for better reliability

2024-xx-xx

  • Placeholder for past releases. Add notes per release process in README.