Skip to content

0.7.0-beta - the workspaces release

Choose a tag to compare

@figrita figrita released this 13 Mar 01:16
· 219 commits to main since this release

Silvia 0.7-beta

Workspaces

  • Unlimited independent workspaces in a tab bar
  • Click a tab to switch, double-click to rename, right-click for options
  • Nodes can appear on multiple workspaces — toggle from the node right-click menu
  • Cross-workspace connections show source tags on ports — click to jump to the source
  • Ctrl+T to create a new workspace, Ctrl+1–9 to switch
  • Properties modal via tab right-click to edit name, author, and description
  • Tab provenance indicator shows which workspaces have a saved source

Main Input

  • New left-side panel for global video and audio source management
  • Video: file, webcam, or screen capture with live preview
  • Audio: file, mic/line-in, or video audio with spectrum display, level meters, gain, and 3-band EQ
  • Main Input node provides video texture, bass/bass+/mid/high levels, and oscilloscope output
  • Audio meters with threshold sliders, event outputs, and frequency histogram
  • Panel collapses out of the way when not needed

Save & Load

  • Ctrl+S quick save (silent overwrite), Ctrl+Shift+S for Save As
  • Save/Save As tabs in the save modal with per-field overwrite control
  • Simplified Open modal with clear "Open" (new tab) and "Add In" (merge) actions
  • Workspaces track their save origin for quick save
  • Save all open workspaces into a single compound file
  • Load compound files to restore a full multi-workspace session
  • Drag-and-drop file upload in the asset manager
  • Inline migration for legacy save formats

New Nodes

  • Dither — ordered dithering with Bayer 2×2/4×4/8×8 and hash noise patterns, with optional pixelation
  • Smoothstep — soft threshold between two edges
  • Domain Warp — fractal noise-driven UV distortion
  • Glitch — digital glitch effects with block displacement, color channel shifting, and scanlines
  • Kuwahara — painterly smoothing filter that preserves edges
  • Pixel Sort — sort pixels by brightness/hue/saturation along rows or columns
  • Scatter — randomly displaces pixels using noise-based offset
  • Tunnel 3D — raymarched 3D tunnel fly-through with textured walls

Mixer

  • Projector controls relocated into the Mixer panel with resolution and background settings
  • Transition effects: wipe, radial, dark/light fade, checker, and lines
  • Crossfade remapped through tangent curve for smoother response at extremes
  • Removed redundant minimixer node

Enhancements

  • Edge Detection — pixel/UV sample space option for resolution-independent behavior
  • Tunnel 3D — phase accumulation for smooth speed transitions with start/stop/restart; shading option
  • Scatter — density decoupled from copy scale
  • Media nodes use textureSize() for dynamic aspect ratio — no recompile on source change
  • Main Input texture uploads deduplicated to once per frame per GL context
  • Sampling cost warnings on nodes that multiply upstream work — hover for details
  • Mixer preview labels are clickable to jump to that workspace
  • Save filename defaults to the active tab name
  • Empty workspace cleaned up automatically if "load as new" produces no nodes

Visual Design

  • Lucide SVG icons replace all Unicode/emoji iconography
  • Unified chrome button styling: icon at rest, label slides out on hover
  • Redesigned side panels with collapsible 30px headers and vertical labels
  • Restyled modals, patch cards, context menus, and tab bar
  • Redesigned asset manager to match app design system
  • Toolbar actions consolidated into an app menu (native menu bar in Electron, dropdown in web)
  • Typography normalized to generic monospace with unified line-height
  • Consistent 4px spatial grid, 2px/4px border-radius convention throughout

Fixes

  • Fixed texture binding order (activeTexture must precede bindTexture)
  • Fixed in-place mutation of cached patch data on load
  • Context menu scoped to editor area; fixed node placement offset
  • Fixed H key (hide UI) to keep WebGL canvases rendering
  • Fixed fullscreen on Linux/KDE to use native Electron API, preserving menu bar
  • Fixed right-click on node header initiating drag
  • Added Chromium flags and gl.flush() for Linux WebGL reliability

Platform

  • macOS app menu shows "Silvia" instead of "Electron"
  • Edit menu with undo/redo/cut/copy/paste
  • Post-build packaging script with launchers, icons, and zip archives for Linux, macOS, and Windows
  • SILVIA_WORKSPACE environment variable for custom workspace paths on Linux

Other

  • Renamed "Master" to "Main" and "patch" to "workspace" throughout the UI
  • Illustrated howto guide with screenshots and keyboard shortcut reference
  • Keyboard handlers guard against contentEditable targets