Skip to content

MaterialCraft v0.2.0

Choose a tag to compare

@github-actions github-actions released this 06 Nov 20:21

What's Changed

  • Alpha in the 3D view; select, delete, swap and reroute wires by @RafaelMendes1407 in #36
  • Levels: histogram editor with range handles by @RafaelMendes1407 in #37
  • feat(i18n): add complete Arabic (ar) UI localization and font fallbacks by @test-bit-sys in #38
  • Add Export outputs to the explorer graph context menu by @AndreIsraelAO in #25
  • Allow centered dialogs to move by their title bars by @Belligerently in #31
  • 2D view: show the node you click by @ljkx in #35
  • Keep typed numeric parameter values across frames by @Belligerently in #39
  • Nodes: clamp parameters to hard limits before cooking by @simonhull in #40
  • Formats: bound package load memory, check image size before decoding, guard parsers by @simonhull in #41
  • Control channel: harden the token file and the app's control server by @simonhull in #42
  • Eval: key resources on content and graph instances on their whole sub-graph tree by @simonhull in #43
  • Cook only the nodes an input change reaches; cancel stale cooks by @simonhull in #44
  • MCP material_export tool: sandboxed agents can export portable .mcmat materials by @A-Gift-Of-Flame in #45
  • fix(windows): a window that can't start says why instead of the app exiting silently by @smittie2000 in #50
  • Connect a wire dragged from an unconnected input by @GrosFineasss in #53
  • Apply interface scale after pointer release by @Belligerently in #54
  • Clarify node resolution while previewing by @Belligerently in #56
  • cli: accept --automation-read-root / --automation-write-root in mcp and serve by @jayzed80 in #61
  • Keep keyboard-selected node search results visible by @Belligerently in #62
  • Make round parameter values reachable by dragging by @Belligerently in #63
  • Recognize reported SBS aliases for four library nodes by @Belligerently in #64
  • Fixed Heightmap by @PiJellyPin in #65
  • Expose 4K editing previews in the 2D and 3D views by @RafaelMendes1407 in #66
  • Show first search result after filtering or reopening by @Belligerently in #67
  • Make node-search result rows clickable across their width by @Belligerently in #68
  • Add missing base-two and Cartesian function primitives by @RafaelMendes1407 in #69
  • Import numeric parameter expressions from SBS XML by @RafaelMendes1407 in #70
  • Support DirectX normal maps in the 3D preview by @RafaelMendes1407 in #71
  • fix: keep the open graph open after deleting an earlier one; clamp huge sample coordinates by @SteamSmith in #73
  • fix(eval): hash nested instanced graphs and whole resource bytes into the cache key by @SteamSmith in #74
  • fix(nodes): Normal Blend no longer returns NaN for a base normal with z = -1 by @SteamSmith in #75
  • fix(control): random owner-only token file, constant-time compare, close on failed auth by @SteamSmith in #76
  • fix(cook): drop a stale background cook that a newer sync cook superseded by @SteamSmith in #77
  • fix(cook): catch panics in the cook worker and in app and control commands by @SteamSmith in #78
  • fix(control): merge ui.set recursively and clamp camera zoom by @SteamSmith in #79
  • fix(nodes): bound the anisotropic blur's horizontal pass by @SteamSmith in #80
  • fix(nodes): cap the bin span in Splatter and Scratches by @SteamSmith in #81
  • fix(nodes): make Anisotropic Noise, Grunge Map 3 and Leaks tile by @SteamSmith in #82
  • fix(nodes): apply hard safety bounds during parameter resolution by @SteamSmith in #83
  • fix(nodes): scale the coarse levels of Normal to Height correctly by @SteamSmith in #84
  • fix(formats): cap and share package resource reads, error on missing entries, dedupe saved names by @SteamSmith in #85
  • fix(formats): choose sRGB or linear when reading bitmaps by @SteamSmith in #86
  • fix(formats): drop whole bad triangles and reject non-finite mesh data first by @SteamSmith in #87
  • fix(formats): check image size from the header and sync atomic writes by @SteamSmith in #88
  • fix(ui): ask before unsaved work is thrown away by @SteamSmith in #89
  • fix(engine): end undo merge runs at gesture and request boundaries by @SteamSmith in #90
  • fix(engine): record multi-command gestures as one undo entry by @SteamSmith in #91
  • Fix Distance node edge artifacts with exact source propagation by @Belligerently in #94
  • Preserve view settings when a request is rejected by @Belligerently in #95
  • Use declared input order when deleting and relinking nodes by @Belligerently in #96
  • Preserve the graph seed when grouping selected nodes by @Belligerently in #97
  • Clear parameter drivers when restoring defaults by @Belligerently in #98
  • Reject colliding filenames before exporting maps by @Belligerently in #99
  • Fix preview sizing and stale input cache hits by @FredApps in #109
  • 18 parity for standard sbs nodes by @chasse20 in #125
  • Hash bound input-image resources into graph instance cache keys by @eliets2 in #110
  • Reject non-finite glTF normals before normalizing them by @eliets2 in #114
  • Clamp enum and degenerate-range parameters to hard limits by @eliets2 in #115
  • Reply to non-UTF8 lines on the control channel by @eliets2 in #118
  • Fix 4K preview texture refresh in 2D view by @eliets2 in #122
  • Restore modified flag when undoing to saved state by @eliets2 in #112
  • Keep typed graph name and attribute text across frames by @eliets2 in #124
  • Copy the shared house rules into AGENTS.md by @FredApps in #126

New Contributors

Full Changelog: v0.1.2...v0.2.0