Skip to content

v2.0.0

Choose a tag to compare

@kunitoki kunitoki released this 06 Nov 09:08
· 8 commits to main since this release
b600245

This is a massive release that touches every layer of the framework: from a full SDL3 migration and a new RHI abstraction, to 3D rendering, advanced audio/DSP tooling, a revamped UI toolkit, and built-in AI capabilities.


🚀 Highlights

  • Platform: Migrated to SDL3, improved Linux support, modern drag-and-drop, and mime-typed system clipboard.
  • Graphics: WebGPU is now the default on WASM, new RHI exposing Rive's ORE renderer, 3D & advanced 2D shading, compute shaders across Metal/WebGPU/D3D/OpenGL, and rendering moved to its own thread.
  • Audio: AUv3 plugin client support, improved CoreAudio, device selector panels, oscillators/LFOs, Scala tuning maps, and the YDSP language (JIT DSP phase 1).
  • UI: Multi-touch + gesture support on mobile, FlexBox & Grid layouts, new TreeView/TabComponent, CodeEditor with syntax highlighting, and full drag-and-drop between components, files, and external apps.
  • AI: Local LLM requests with tooling, MCP client & servers, Python support, and embeddings.

What's Changed

🖥️ Platform

  • Transition to SDL3 (#138)
  • Support for Vulkan surfaces on Android (#218)
  • Improved Linux support
  • Modern drag and drop support (#184)
  • System clipboard support with mime types

🎨 Graphics

  • Switch to WebGPU by default on WASM (#211)
  • Introduce ShaderTranspiler and ShaderCache (powered by glslang and spirv-cross) (#126)
  • Implement RHI by exposing Rive's ORE agnostic renderer and RenderCanvas (#150)
  • Enable 3D and advanced 2D with shading (#150, #181)
  • Enable WebGPU stack on Emscripten + WGSL transpilation (#145)
  • Compute shaders and passes (Metal, WebGPU) (#151)
  • Compute shaders and passes (D3D, OpenGL) (#173)
  • Move rendering to its own thread (#173)
  • Plumbing support for audio compute shaders (#151)
  • Make OpenGL renderer work on Windows (#173)
  • Support OpenGL 4.x on Linux (#173)
  • New yup_3d (scene, nodes, glTF) and yup_renderer (PBR scene rendering) modules (#230)
  • More efficient SVG parsing and rendering (#170)
  • More efficient Lottie rendering (#133)
  • Component effects based on shaders (#147)
  • Allow grabbing a component paint to Texture on the GPU (#147)
  • Allow grabbing a component paint to Image on the CPU (#147)
  • Allow caching the component on a texture (#147)
  • Allow rendering components on 3D surfaces (#190)
  • ComponentEffects should allow mouse warping to follow closely the rendering (#190)
  • Animated PNG support (#148)
  • Animated WebP support (#148)
  • Read and write EXIF image metadata (#148)

🔊 Audio

  • Improved support for Audio Plugin client AUv3 (macOS) (#166)
  • Improved CoreAudio support (#113)
  • Audio/MIDI device selector panels (#113)
  • Oscillators / tone generators (#192)
  • Low frequency oscillators (#192)
  • TuningMap class to support Scala note mapping (#183)
  • Improved standalone processor wrapper (add audio + MIDI device selectors) (#238)
  • YDSP language for JIT DSP phase 1 (#191)

🧩 UI

  • Multi-touch support on mobile (Android, iOS, and mobile web) (#180)
  • Gestures support on mobile (#229)
  • Fix PopupMenu activation when parented inside the window (Emscripten)
  • FlexBox layout system (#169)
  • Grid layout system (#169)
  • Toast notification support (#176)
  • New TreeView component (#205)
  • New TabComponent (#208)
  • Improved ListBox component (#204)
  • CodeEditor with syntax highlighting (#167)
  • Drag and drop support between Components (#184, #186)
  • Drag and drop support from external files/text (#184, #186)
  • Drag and drop support from Components to external apps (#184, #186)
  • Implement missing component callbacks (#187)
  • New ThemePalette class (#206)
  • Improve text support: selection, cursor, autowrap, …

🗂️ Data Models

  • Improve handling of parent-changed notifications in DataTree (#203)

🎬 Artboards & Animations

  • Ability to control Rive state machines (#182)
  • Query Rive artboard dimensions, named nodes and their dimensions (#182)
  • Data binding / View model support in Rive artboards (#182)
  • Improved Lottie and SVG rendering performance (#185)

🤖 AI

  • Local LLM requests with tooling (#99)
  • MCP client and servers (#99)
  • Python support (#99)
  • Embeddings (#99)

🛠️ Utilities

  • Allow locating bundle paths (app and host) and reading from them (Android, Apple) (#178)
  • Improved yup_python module support (#149)
  • YAML support (#168)
  • CancelTokenSource and CancelToken (#175)

📦 Misc

  • Website
  • Proper documentation on Read the Docs
  • Proper and improved demo app (simplified and isolated demos)
  • Individual demos on GitHub Pages
  • Open source license files in thirdparties (#202)
  • External standalone plugin to show the capabilities (#238)

Full Changelog: v1.0.0...v2.0.0