Repository navigation
Releases: burnhamrobertp/bar-map-editor
Releases · burnhamrobertp/bar-map-editor
Release list
v0.3.1
Patch release: a large performance fix for the Layout node.
- Layout node rasterization is dramatically faster, fixing the sluggish Layout edit view (the 2D spline/shape canvas + 3D preview). Splines were rasterised by measuring every output pixel against every curve sample -- O(pixels x samples) -- and re-run on the UI thread on each edit, so adjusting a river could freeze the editor for a fraction of a second per change regardless of GPU.
- Both rasterisers now skip pixels outside the shape's bounding box.
- The spline band is stamped per polyline segment using exact point-to-segment distance, so cost scales with the band area instead of pixels x samples.
- Measured ~13x faster at preview resolution (about 230 ms down to 17 ms for a typical multi-point river with symmetry).
- This also speeds up exporting any map that uses spline-based features (rivers, streams, canyons, coastlines, the Layout node generally).
v0.3.0
A large release: a data-driven node registry, a unified properties/settings UI, a feature-macro library for common landforms, a new differential-erosion node, surface-detail normals, and editor/export parity work.
Node graph and registry:
- Node types are now a single data-driven registry -- ports, parameters, palette entry, canvas colour, and source-node validation all derive from one descriptor per node, replacing the hand-maintained
executor.rsmatch and scattered metadata. - Node parameters can be driven by graph connections (scalar parameter ports).
- New
Differential Erosionnode: wears soft rock down while hard strata and slope-protected faces stand proud, forming mesas, benches, and stratified walls. Distinct from hydraulic erosion, which follows water flow and carves valleys. - New interactive
Curvenode editor for value remapping. - New
Channel Split/Channel Mergefor splitting a colour buffer into R/G/B/A heightmaps and recombining them; added coast-erosion and lightmap-bake compute operations.
Properties and settings:
- Every settings modal and node-property panel now renders through one shared field renderer -- consistent rows, sliders that update live while dragging plus an editable value box, a reset-to-default control, and whole-row hover tooltips.
- Settings modals gain a search filter and a Common/Advanced split so the fields most maps actually tune are up front and the rest stay one toggle away.
- Node-property sliders show the registry default as a tick and a reset control; parameter descriptions surface as row tooltips.
- Fixed-width label column and panel width so rows stay aligned instead of drifting as the panel settles.
- Action-bar modals close on Escape; section help shows on hover instead of a separate info icon.
Feature-macro library:
- Replaced the old biome macros with a data-driven feature-macro library of standalone landform generators (butte, mesa, plateau, basin, crater, chokepoint, land bridge, river, stream, canyon, island, ridge, and more), each with placement and configuration knobs.
- River, stream, and canyon channels meander; islands get irregular coastlines; primitive features use irregular hand-drawn geometry rather than perfect shapes.
- Path and area features seed editable splines so the initial shape can be drawn by hand.
Terrain and erosion:
- Hydraulic erosion intensity is now resolution-independent (droplet count scales with grid area), so the low-res preview matches the full-res export instead of eroding far harder.
- AutoTexture water bands and the CoastErosion shoreline anchor to the map's actual sea level.
- Mirror symmetry seams are feathered to remove the hard copy line.
- Reconciled hydraulic erosion defaults and dropped a dead method parameter.
Surface detail and normals:
- Procedural tileable detail-normal generator with a detailNormalTex picker in the resources panel; presets render as a relief thumbnail gallery and are generated off the UI thread.
- Surface Detail points at the splat-normal system; detailNormalTex is baked from the heightmap at export when left unset; the redundant heightmap-derived NormalMap node is gone.
Lava and water:
- Lava is detected and emitted via
mapconfig/lava.luainstead of being inferred from water damage. - Water damage is authorable, so caustic water can be set up.
Editor/export parity and CLI:
- GPU-dispatched nodes now match the CPU export exactly; CPU and GPU noise generation are unified.
- bar-cli: heightmap export command, a
--gpuflag, full project validation invalidate, and strict heightmap output in compile/export.
World Machine import tooling:
- World Machine
.tmdimport-evaluation tooling with gap reports, plus link-topology and faithful-translation probes.
Node canvas:
- New and imported nodes size to their port count, so a node is never created shorter than the height it could be manually resized down to.
Validation:
- FinalComposition requires a texture input; full project validation runs in the CLI.
Bug fixes:
- Slider handles stay clear of their neighbours at the value extremes.
- Whole-row hover tooltips no longer cover the field controls they describe.
- Default field values render in the normal text colour instead of a muted placeholder.
- Identity modal labels are corrected and fields fill the row.
v0.2.4
Full Changelog: v0.2.3...v0.2.4
- Layout authoring is now a single unified
Layoutnode, replacing the separateLayoutGeneratorandSplineLayoutnodes. One node holds a list of items, each independently an ellipse, rectangle, line, or freehand-drawn spline. - Layout nodes have a dedicated edit view: double-click the node to open a full-area tab with a 2D editing canvas on the left and a 3D preview on the right.
- 2D canvas editor for Layout items
- Tool dropdown picks ellipse, rectangle, line, or draw (freehand spline)
- Drag to create a shape; Shift snaps line angles to 45-degree increments and constrains ellipses / rectangles to equal radii
- Press a shape's body to select and drag it in one motion
- Corner-resize handles anchor the opposite corner so the shape grows from where you grab; hold Shift for center-fixed scaling
- Grid divisions match the map's dimensions, so a 4x4 map shows 4 main squares per axis with subtler sub-cells inside each
- Layout 3D preview matches the Sculpt viewport in rendering quality and camera controls (orbit, pan, zoom)
- Layout items can be mirrored across X, mirrored across both axes, or rotated 90 degrees from a single authored shape; mirror modes choose between replace and average blending for overlapping pixels
- Demo
.barprojprojects underexamples/spline-layout-demos/andexamples/symmetric-layout-demos/showcase the new node
Bug fixes:
- Slider edits in the Layout sidebar persist while dragging the bar (previously the value would visually snap back until release)
v0.2.3
Full Changelog: v0.2.2...v0.2.3
- Hide the command-prompt window when launching the installed Windows binary
- Write tracing output to
bme.lognext to the binary on every launch, truncated each run, so logs are still recoverable when stdout is gone - Game archives in the Test-in-BAR dropdown now resolve to their real
modinfo.luaidentity instead of a literal$VERSIONplaceholder- Only archives actually installed at
<install>/data/games/appear -- the synthetic "Beyond All Reason (latest)" entry is gone - BAR-install paths configured one level too deep (
.../dataor.../data/games) are auto-normalised so resolution doesn't double-stack
- Only archives actually installed at
- Lock 3D Sculpt and Preview layouts when no hardware-accelerated wgpu adapter is detected
- Editor starts on Node Graph in that case even if a 3D layout was last selected
- Disabled menu entries explain why on hover
- Linux GUI no longer crashes at startup on software-only Vulkan stacks (lavapipe / WSLg without GPU passthrough)
- Compile worker catches panics and surfaces them as logged errors instead of silently disconnecting
- Validation badge on action-bar buttons now sits on the corner instead of floating off the top-right edge
v0.2.1
Full Changelog: v0.2.0...v0.2.1
- Added path to BAR installation directory in Edit -> Preferences (previously autodetected)
- Disabled test-in-bar button without valid path to BAR installation
- Fix test-in-bar colliding with existing .sd7 and deleting it
- Fix test-in-bar generating distinct directories for each map test
- Fix test-in-bar failing due to invalid path to test directory
- Importing .sd7 now removes version strings from the name, if present
- The name + version fields should distinguish maps
- Open Project errors if not targeting a .barproj directory
- Recent Projects no longer includes the project you have presently open
v0.2.0
Full Changelog: https://github.com/burnhamrobertp/bar-map-editor/commits/v0.2.0