Skip to content

Releases: deepratna-awale/open-wallpaper-engine-mac

Open Wallpaper Engine 1.0.0 Beta 5

Pre-release

Choose a tag to compare

@deepratna-awale deepratna-awale released this 04 Oct 21:56
d11a341

Added

  • Wallpaper Editor (Edit Wallpaper in the library's bottom bar, ⌥⌘E): a window for scene wallpapers with the layer hierarchy (visibility, lock), the live wallpaper as a canvas you can zoom and pan, and an inspector for the selected layer. Move, scale and rotate image and text layers on the canvas or with the inspector, change opacity, colour and blend mode, turn effects on and off, and set the wallpaper's properties; everything can be undone. Edits are kept beside the wallpaper and apply wherever it runs, without changing its files: Revert drops them, and Save as Local Wallpaper adds a copy with the edits to the library.
  • The Wallpaper Editor is an app of its own, inside Open Wallpaper Engine. It has its own Dock icon and menu bar ("Wallpaper Editor"), one process for every wallpaper you edit. Quitting Open Wallpaper Engine leaves it open, closing it leaves Open Wallpaper Engine as it was, and a crash of one doesn't take the other down. Edits, drags and property changes still show on the desktop as you make them; the editor quits when its last window closes.
  • Wallpaper Editor: layers and effects. Add image (imported from a file, converted when needed), text (with a clock or date script), solid colour, composition, fullscreen and sound layers; duplicate, delete, rename, reorder by dragging, group, ungroup and move layers in and out of groups, keeping them where they are. Dragged layers snap to the scene and to each other (with guides), align to the scene, and move, scale and rotate live without reloading. Text is edited on the canvas or in the inspector with its font, size, alignment and padding. Effects are added from Wallpaper Engine's catalog (searchable, by group) or the Workshop effects a wallpaper uses, removed, reordered and toggled, and every parameter is editable with the control its shader declares (sliders, colours, vectors, options, textures), live where the renderer allows; a parameter can follow a user property, and masks are painted on the canvas or imported. An Assets tab lists the wallpaper's textures, models, sounds and fonts and imports dropped files. Everything is undoable, kept in the overlay with its files beside it, and Save as Local Wallpaper writes it all into the copy.
  • Wallpaper Editor: the timeline. Timeline in the toolbar docks a panel under the canvas with the selected layer's animated properties as tracks: keyframes on a time ruler, a playhead you scrub (the canvas stands at its time), play, pause and loop, ease presets, Wallpaper Engine's Bézier handles on a curve view, and the clip's options (fps, length, loop, mirror or single, start paused). A diamond beside each animatable field keys it at the playhead, and while the timeline is open an edit keys it by itself. Effect parameters can be animated too. Clips are written in Wallpaper Engine's own format by Save as Local Wallpaper.
  • Wallpaper Editor: scripts and user properties. Every field in the inspector has a menu to add a SceneScript (or an object script), edit it, or bind the field to a user property. The script editor docks under the canvas with JavaScript highlighting, line numbers, find (⌘F), autocomplete of the SceneScript API (engine, thisLayer, thisScene, input, the audio and media APIs, WEMath/WEVector/WEColor), syntax errors at their line before Apply, the script's own properties, templates (clock, date, audio-reactive scale, follow the cursor, object script) and a console of what the running scripts log and the errors they raise. Apply runs the script in the wallpaper (it reloads). User Properties in the toolbar adds, edits, removes and reorders the wallpaper's properties of every type (checkbox, slider, colour, combo, text input, file, folder, label) with their defaults, slider ranges, combo options and conditions, beside a live preview of the panel; renaming one re-points its conditions and bindings. All of it is undoable, kept with the other edits, and written into scene.json and project.json by Save as Local Wallpaper.
  • Particle editor in the Wallpaper Editor: add a particle system (blank, or one of Wallpaper Engine's presets), move it on the canvas, duplicate or delete it, and edit it as Wallpaper Engine's editor lays it out: its texture and material, its own settings, emitters, initializers, operators, renderers, child systems, control points (dragged on the canvas) and the layer's instance override. Components are added, removed and reordered in lists, each field with the control Wallpaper Engine gives it. Changes show at once on the running system, only that system starting over (Restart System starts it again on demand), can be undone, and are written as Wallpaper Engine's particle files by Save as Local Wallpaper.
  • Wallpaper Editor: Puppet Warp. Make a puppet from an image layer (a mesh fitted to its outline, then vertices moved, added or deleted), build its skeleton on the canvas, weight it automatically or paint the weights, animate it in clips with onion skin and animation layers, and set Wallpaper Engine's bone physics per bone with a live preview. Existing puppets open too, with their attachments, blend shapes and texture channels kept. Save as Local Wallpaper writes the rig as Wallpaper Engine's model files.
  • Previews in the Wallpaper Editor's browsers. Add Effect shows each effect at its default values on a colour test card, and a new Add Particle System browser lists every particle system Wallpaper Engine's editor offers (its default systems and every preset's variants, grouped as it groups them, searchable), each on a dark background. The previews are rendered by the app's own renderer, in a helper process, the first time they are shown (a spinner meanwhile); moving ones loop. They are kept for the installed assets' build, so an assets update renders them again. Without the assets, both browsers offer to install them. The assets copy now keeps Wallpaper Engine's particle presets.
  • Depth Map Generation plugin (Settings › Plugins, off until installed): downloads Depth Anything V2 Small, Apple's Core ML package (Apache-2.0), from Apple's Hugging Face repository at a pinned commit, checks every file against its pinned SHA-256 and prepares it for the Mac. In the Scene Editor (Live) and the Wallpaper Editor, a Depth Map section generates a depth map on the Mac for an image, text, solid, composition or fullscreen layer, a particle system (from one frame) or the whole scene, previews it, sets its smoothing, and applies Wallpaper Engine's Depth Parallax effect bound to it (strength adjustable, removable, undoable), which follows the pointer as in Wallpaper Engine (on a scene without camera parallax it turns parallax on with the layers' own movement at 0, and back off with the last depth parallax removed). Depth maps are kept with the wallpaper's edits, so both editors share them and Save as Local Wallpaper writes them as a normal effect and texture. The model is loaded only while generating and released five minutes after the last generation. See docs/depth-maps.md.
  • Screen Saver in the Scene Editor (Live) (the middle tab: Wallpaper | Screen Saver | iPhone & iPad Export): make the screen saver from a scene wallpaper's own version. It runs a private copy of the wallpaper, so turning layers on or off and changing user properties there never touches your desktop, its properties or the Wallpaper Editor's edits. These choices are kept for each wallpaper as the screen saver's own, so the next recording reuses them. Record and Set as Screen Saver records the seamless loop as the screen saver plugin does and makes it the screen saver (turning the plugin on when it is off); the previous video is replaced at once, never left missing or half-written, and Preview Recording plays it in the tab beside the live preview. A note in the tab says that the screen saver is a video: dates, times, clocks, media info and audio-reactive parts show the moment it was recorded, so hide those layers or use the daily re-recording. See docs/screen-saver.md.
  • Re-record every day at a time you choose (off by default): while Open Wallpaper Engine is running, the screen saver is recorded again each day with that day's date and time, at background priority, waiting while the battery is below 30 %. A time missed while the Mac slept or the app was quit is recorded at the next wake or launch. The tab shows when it was last recorded and when it will be next.
  • iPhone & iPad Export in the Scene Editor (Live) (the last tab in its toolbar): frame a scene wallpaper as an iPhone or iPad lock screen and export it as a Live Photo, with AirDrop or to a folder. Pick any of 33 iPhones and 30 iPads that show Live Photo lock screens (iOS 17 and iPadOS 17 or later) from a searchable device list (type a name, family, year or resolution; the last choice is kept); the export has that device's exact pixels. The lock-screen guide follows the device, and for an iPad a landscape preview shows the part iPadOS keeps when the iPad is turned (the export itself is portrait). See docs/iphone-ipad-export.md.
  • The export mode never touches the desktop. It runs its own private copy of the wallpaper with its own properties and layer edits, copied from the wallpaper when the mode opens: change user properties, hide, move, resize, recolour or fade layers, change blending and effects, and only the preview and the export change. Your desktop, its properties and the Wallpaper Editor's edits stay as they were.
  • Export Settings: the mode's right-hand panel, also shown as a sheet before every export (and from the Export Settings toolbar button), holds the device, the lock-screen guide, the cr...
Read more

Open Wallpaper Engine 1.0.0 Beta 4

Pre-release

Choose a tag to compare

@deepratna-awale deepratna-awale released this 30 Sep 06:27
45ac744

What's Changed

New Contributors

Full Changelog: v1.0.0-beta.3...v1.0.0-beta.4

What's Changed

  • perf(render): draw scene wallpapers on a dedicated render thread by @deepratna-awale in #22
  • Particles: emitter shapes match Wallpaper Engine's by @deepratna-awale in #28
  • fix(render): stop render threads synchronously and fix the CI failures since #22 by @deepratna-awale in #39
  • fix(puppets): pose from the rig's rest block, not the skinning bind by @deepratna-awale in #43
  • Decode JPEG .tex mipmaps from their stored bytes; drop the JPEG thumbnail limitation by @deepratna-awale in #27
  • feat(scenescript): implement setParent, lookAt, lookAtYaw, rotateObjectSpace, transformAttachmentToTexture by @deepratna-awale in #29
  • feat(particles): draw every renderer of a particle system by @deepratna-awale in #31
  • fix: Beta 3 UI fixes (sort label, settings width, shortcuts list) by @deepratna-awale in #33
  • feat: complete Your Presets with local storage, export and import by @deepratna-awale in #34
  • fix(updates): name versions by their release label in the update window by @deepratna-awale in #35
  • feat(inspector): material Blending picker for image layers and particle systems by @deepratna-awale in #37
  • fix(media): an item without artwork has its player's icon as the thumbnail by @deepratna-awale in #40
  • fix(isolation): isolated copies leave the desktop picture alone by @deepratna-awale in #41
  • Harden wallpaper input handling by @deepratna-awale in #42
  • fix(build): main doesn't compile after #31 and #37 by @deepratna-awale in #44
  • fix(assets): check the Steam build before Update from Steam downloads by @deepratna-awale in #36
  • SceneScript parity: renderContext, console, applyGeneralSettings langu...
Read more

Open Wallpaper Engine 1.0.0 Beta 3

Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Sep 12:38
ee6f853

A performance release: wallpapers use less GPU, memory and battery, and a still wallpaper uses almost none.

Faster and lighter

  • Idle wallpapers stop drawing. A scene with nothing changing draws no frames, and the frame rate follows what's moving.
  • Quality ↔ Efficiency slider (Settings › Performance) sets frame-rate caps and effect detail. Low Power Mode and heat move it toward efficiency.
  • Video wallpapers draw only when there's a new frame. A 4K test video went from 180 to 24 frames in 3 s, using 91% less GPU time.
  • Texture compression (Settings › Optimizations, on by default): wallpaper images use about a third of the GPU memory, and loading can be faster.
  • Less memory: decoded images are dropped after upload, two screen buffers instead of three at 60 fps or less, and 3D meshes are no longer kept in RAM after upload.
  • Covered or sleeping displays stop drawing. Covered, muted web wallpapers are suspended.
  • Audio capture runs only while a wallpaper needs it.
  • Particles and 3D: empty particle systems are skipped, rope particles are cheaper, 3D models are culled per mesh, and unchanged puppets skip re-posing.
  • Text (clocks, scores) is drawn off the render thread.
  • Moving a property slider for position, scale, rotation, colour or opacity updates live, without reloading the scene.
  • New downloads are prepared in the background, so they open faster the first time.

Web wallpapers

  • Pausing now pauses the page's scripts, animations, video and audio, as in Wallpaper Engine.
  • Pages receive your FPS setting.
  • Optional: render web wallpapers at standard resolution on Retina displays (Settings › Optimizations, off by default).
  • Displays showing the same web wallpaper share one web process.

Settings, legal and more

  • Settings reorganised into ten tabs, with search, export and import, and per-tab reset.
  • Mac keyboard shortcuts, and a new Playback menu.
  • Terms of Use and Privacy Policy, shown once in the setup assistant.
  • The app checks for updates at launch.

Fixes

  • Background texture compression no longer uses every CPU core; it runs gently in the background.
  • A wallpaper could stay unlit when a shader finished compiling between frames.
  • A script-created layer now draws in the frame that created it.
  • Web wallpapers no longer get silent audio.
  • Video no longer keeps the display awake, and AVKit videos loop.

Checked in tests, not yet widely in the app

Web pause, FPS and suspension; the shared web process; hidden-display freezing; background preparation. Please report anything odd.

Open Wallpaper Engine 1.0.0 Beta 2

Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 Sep 10:09
1c86991

The second beta of Open Wallpaper Engine 1.0. Installed betas update to it automatically.

Note

This is a beta. Please report problems in Issues.

Fixed

  • Steam login: a login that succeeded with Steam Guard (a code or the Steam Mobile app's approval) was reported as failed. Logins now count as soon as SteamCMD confirms them.
  • Subscriptions: "Download my subscriptions" now lists your Workshop subscriptions.
  • Sprite sheets: an image or script-created layer without its own size is one frame big, not the whole sprite sheet (e.g. the coins in the Dino Run wallpaper).
  • Stability: a crash when a wallpaper's script replaced a 3D model's data with a different number of meshes.
  • Text: changing labels (scores, clocks) cause much shorter hitches.

Changed

  • Video wallpapers play through Metal on the GPU by default, so wallpaper effects apply to video. Apple AVKit remains available in Settings › General › Video Framework.
  • Test and development copies of the app are marked with a badge on their Dock icon.

Install: download the DMG, drag the app to Applications and open it. Signed and notarized by Apple. Requires macOS 14 or later; scene wallpapers need a Steam account that owns Wallpaper Engine.

Open Wallpaper Engine 1.0.0 Beta 1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 Sep 07:55
eb140d9

The first beta of Open Wallpaper Engine 1.0: a rebuilt macOS player for Wallpaper Engine wallpapers — scene, video and web — with a native Metal renderer, Wallpaper Engine's own shaders, GPU particles, 3D models, puppets, lighting, SceneScript and audio-reactive visuals. See the README for what changed since 0.8.1 and the wiki for guides.

Note

This is a beta. Please report problems in Issues.

Install: download the DMG, drag the app to Applications and open it. It is signed and notarized by Apple. Requires macOS 14 or later; scene wallpapers need a Steam account that owns Wallpaper Engine (the setup assistant installs the assets from your copy).

Highlights

  • Automatic updates (Sparkle 2): updates are signed with EdDSA, listed in an appcast on GitHub Pages and downloaded from GitHub Releases. "Update automatically" (on by default) checks, downloads and installs by itself: an update installs on quit, after 10 minutes away from the Mac, or within a day, with a quick relaunch that restores the wallpapers. With it off, "Automatically check for updates" asks before installing. "Receive beta updates" (off by default, on for pre-release builds) offers vX.Y.Z-(alpha|beta|rc).N releases. Settings › General › Updates shows when the app last checked, with Check Now; Check for Updates… is in the app menu and the menu bar menu. Builds without the update signing key (Debug and local builds from source) never check.
  • Setup assistant: replaces the welcome sheet with skippable steps for the language, privacy, SteamCMD, the Steam login, an optional Steam Web API key, the Wallpaper Engine assets and importing wallpapers. The Privacy step has "Keep Open Wallpaper Engine up to date automatically".
  • SteamCMD sets itself up: Valve's SteamCMD is downloaded when none is found; Homebrew's, Steam's or a chosen one is used when present. Terminal login and privacy notes explain what is sent where.
  • Imports: Workshop collections and subscriptions read from Steam's Web API, the Workshop items of an existing Steam library (Valve KeyValues/ACF manifests), and wallpaper folders.
  • Assets after signing in: the Wallpaper Engine assets can install automatically from the user's Steam copy once SteamCMD is logged in, with or without the default wallpapers.
  • Wiki: Support & FAQ opens the project wiki's Troubleshooting page.

Changed

  • The privacy notes now say the app contacts GitHub, without personal data, to check for and download updates, which can be turned off in Settings › General.
  • Quality presets set Shadows (a new Performance control) and volumetrics as Wallpaper Engine does.
  • The repository is now deepratna-awale/open-wallpaper-engine-mac; the default Wallpaper Storage folder is ~/Documents/Open Wallpaper Engine, and the assets cache and hidden data move with it.

Fixed

  • A SteamCMD login counts only once SteamCMD confirms it, and the cached Steam session is restored before installing assets.
  • Unrated import items list as the Installed rating filter does; asset packs without a type stay out of the library.
  • Video: WebM plays through WebKit, AVKit videos keep looping, Metal video frames live until the GPU is done, and wallpaper players let the display sleep.
  • Now-playing artwork binds to effect and material passes; inspector sliders update live; puppets without effects draw past their image's rect.