Repository navigation
Releases: elliotttate/SpatialSlideshow
Release list
Spatial Slideshow 0.9.0
Spatial Slideshow 0.9.0
Photos can now animate directly from their cached 3D scenes, and you can explore a paused photo with the mouse, trackpad, or WASD. This release also adds a native macOS screen saver and full circular camera motion at higher strengths.
Changes
- Add Settings → Playback → Real-time 3D rendering. It targets 60 fps, skips movie encoding for new scenes, and updates camera movement, duration, framing, and zoom without regenerating the scene. Regular clip playback remains the default; turn realtime rendering off for MP4 export.
- While a live scene is paused, drag over the image, scroll with two fingers, or use W/A/S/D to move the camera. Releasing the controls holds the viewpoint; resuming smoothly returns to the slideshow path. Changing photos resets the manual offset. Videos and prepared movie fallbacks pause normally.
- Cache Gaussian scenes across launches with a 4 GiB limit. Active scenes and up to six prepared-ahead scenes are protected; older unused scenes may be regenerated when needed. Existing photo, expansion, and video caches are retained.
- Increase motion strength up to 4×. Above 2×, paths curve into an orbit; from 2.5× they complete a full circle, with higher strength widening the loop. Existing clips at 2× or below remain reusable.
- Add Settings → Screen Saver to share a prepared slideshow with the included macOS screen saver. It plays silently while the app is closed, supports live scenes and prepared clips, and inherits framing, fade, and shuffle settings. It does not run inference or download photos while idle.
- Use Metal compositing for screen saver playback and fades, retain frames while media loads, and improve scene/video fallback, paused navigation, and playlist updates.
- Preserve the full fade duration when the next image becomes ready near the end of a clip, holding the outgoing final frame through the transition.
- Simplify feature names in the app and documentation. Local expansion choices keep their existing behavior and requirements; the native Photos Extend backend stays under Advanced research tools.
- Include the MIT license and reusable border-detail research sources. The detail-synthesis research is not enabled in playback.
Existing preferences are preserved. To use realtime rendering, enable it and restart playback. After updating the app, choose Update Screen Saver if you previously installed the component. macOS may retain an older component until you log out and back in.
Validation
All 21 native synthetic suites and 48 Python tests passed. Coverage includes camera orbits, GPU rendering and transitions, paused mouse/WASD movement, navigation, frame retention, scene-cache reuse and eviction, screen saver playlists, and model setup/recovery. The signed app's realtime controls were also checked with the Trip album.
Download
Download SpatialSlideshow-0.9.0-macOS-arm64.zip, extract it, and open Spatial Slideshow.app. Requires Apple Silicon, macOS 27, and compatible Apple Photos Reframe assets.
The app and embedded screen saver are Developer ID signed. The release app is notarized by Apple and includes a stapled ticket. It uses private Apple frameworks, so future macOS changes may require an app update. Apple frameworks, model weights, personal media, generated caches, and private diagnostic logs are not included.
Spatial Slideshow 0.8.1
Spatial Slideshow 0.8.1
First-run model setup now happens in the app. Missing optional FLUX runtimes and models install automatically when starting playback, or through Settings → Models & Downloads → Download / Check Models.
Changes
- Install a verified portable Python, pinned Apple Silicon dependencies, and the selected local FLUX model without requiring Python, Homebrew, Xcode, or the Draw Things desktop app.
- Show setup progress, support cancellation and retry, resume interrupted Draw Things downloads, and check disk space before large downloads. Allow about 16 GB free for a fresh local-model installation.
- Verify and repair managed runtimes while leaving custom Python environments and model folders untouched. Keep downloads outside the signed app.
- Resolve active Apple Reframe and Clean Up model sets, request missing assets through macOS, and provide one clear setup message with Open Photos when Apple requires manual completion. Apple's model downloads remain under Apple's control; automatic completion on a fresh Mac is not guaranteed.
- Hide the Trip-only native Photos Extend experiment under Experimental research tools for new installations. Normal playback needs no security-setting changes.
- Fix the signed app's Photos permission flow: include the Photos Library entitlement required by Hardened Runtime, so macOS can show its permission prompt instead of immediately denying library access.
- Recover from occupied local server ports without stopping other services. Improve model-download and renderer error messages, remove the dormant demo loader, and clean up large temporary scenes after successful file builds.
Existing photo caches, model files, and saved preferences are retained. Expansion remains off by default.
Validation
All 16 native synthetic suites and 48 Python tests passed. Portable Python bootstrapping, dependency installation, checksum enforcement, interruption/retry, damaged-package repair, process-group cancellation, and occupied-port recovery were tested in isolated directories. The signed helpers passed both Apple Clean Up and Draw Things expansion → Apple Reframe → movie tests on a Trip photo, including persistent reuse. See the first-launch audit for exact coverage and remaining clean-Mac and MLX verification limits.
Download
Download SpatialSlideshow-0.8.1-macOS-arm64.zip, extract it, and open Spatial Slideshow.app. Requires Apple Silicon, macOS 27, and compatible Apple Photos Reframe assets. The release is Developer ID signed, notarized by Apple, and includes a stapled ticket.
This is an experimental prerelease using private Apple APIs. Apple frameworks, model weights, personal media, generated caches, and private diagnostic logs are not included.
Spatial Slideshow 0.8.0
Spatial Slideshow 0.8.0
Album playback now prioritizes photos that have not been shown in the current slideshow, including photos prepared during earlier sessions. Optional local FLUX outpainting, clearer preparation progress, and an experimental native Apple Photos Extend backend are also included.
Playback and caching
- Show every available unseen photo before repeating. When waiting for preparation, shuffle through complete rounds of ready photos, avoiding consecutive duplicates when alternatives exist.
- Reuse cached photos immediately without queuing them again when a newer render finishes. New unseen photos interrupt waiting repeats; Previous/Next continues to follow viewing history.
- Preserve unseen cached items when preparation finishes, and retain pause, crossfade, and final-frame behavior. Viewing history starts fresh for each slideshow; prepared media remains cached across launches.
Expansion options
- Add FLUX · Draw Things, using a separately installed, pinned FLUX.2 Klein 4B runtime on Apple Silicon, and FLUX.2 Klein · MLX as local outpainting choices. Both save expanded stills independently of camera-motion clips.
- Improve Draw Things scene-continuation prompts, overlapping masks, color continuity, and multiband seam blending while preserving the full-resolution source interior. Earlier processing revisions have separate cache identities.
- Add setup instructions, runtime checks, cancellation, and idle shutdown of the app-owned Draw Things server.
- Include Apple Photos Extend as an opt-in research preview restricted to the Trip album. It uses Apple's online service through the original Photos process and requires the separately configured temporary SIP-disabled research environment and Xcode tools. Network retries and persisted rate-limit cooldowns allow cached playback to continue. The app does not change security settings.
Generated borders can still have visible seams, incorrect geometry, or mismatched depth of field. The improvements do not make every expansion seamless. Apple Extend has service quotas and is unsuitable for unrestricted album-wide generation. The normal default remains expansion off; existing preferences are retained.
Progress and diagnostics
- Show elapsed time and clearer errors while waiting for iCloud originals, video preparation, or model helpers.
- Bound helper execution, cancel unresponsive children, and retain failed-helper logs accessible through Show Diagnostics.
- Retry offline and low-storage conditions without silently discarding the pending photo.
Validation
- All 14 synthetic suites passed, covering preparation, storage recovery, photo/video cache persistence, playback, displayed video layers, navigation, fullscreen controls, music, display sleep, helper timeouts, and native Extend recovery.
- All 32 Python tests passed, covering local expansion geometry, source preservation, color/seam blending, cache corruption, local-server ownership, cancellation, and native research guards without model requests.
- The release app and source-only research probes built successfully. The archive passed integrity and extracted-app signature checks.
- The Developer ID signed app passed both Apple Fast Clean Up and Draw Things expansion → Apple Reframe → movie tests on a Trip photo, including persistent-cache checks. Apple accepted notarization with no issues; the stapled app passes Apple's pre-distribution checks.
- The shuffle update was checked live on Trip with 14 distinct photos and no repeats in the observed startup sequence. Earlier Trip-only checks exercised the Draw Things expansion → Apple Reframe → video pipeline, changed-motion expanded-still reuse, and clip reuse in a separate process.
Download and requirements
Download SpatialSlideshow-0.8.0-macOS-arm64.zip, extract it, and open Spatial Slideshow.app. Requires Apple Silicon, macOS 27, and supported Photos Reframe models already installed on the Mac. Optional expansion engines have additional setup requirements; see the README.
The download is signed with Developer ID Application: Brian Tate (RH4U5VJHM6), notarized by Apple, and includes a stapled notarization ticket. This remains an experimental prerelease using private APIs; notarization does not establish compatibility across other Macs or macOS builds. Apple frameworks, model weights, personal photos, generated caches, and private diagnostic logs are not included.
Spatial Slideshow 0.7.0
First public experimental release of Spatial Slideshow for Apple Silicon and macOS 27.
Spatial Slideshow uses the actual installed Apple Photos Reframe models and Gaussian renderer to animate photos with depth. Choose a Photos album or local images, then play with varied camera motion, persistent caching, fades, music, optional videos, and fullscreen controls.
Settings and framing
- A dedicated Settings window replaces the large options menu.
- Optional Apple Fast Clean Up edge expansion adds camera travel room while keeping the original composition close in view.
- Maximum zoom out controls how much generated area may be revealed. It defaults to 0%; the limit follows the amount of expansion.
- New-user defaults: 9 seconds, Strong varied motion, Fit with Black Bars, fades and shuffle on, full-quality unedited originals at 3840 pixels. Expansion and videos start off.
- Existing saved preferences are retained.
Download and requirements
Download the arm64 ZIP below, extract it, and open Spatial Slideshow.app. It requires macOS 27, Apple Silicon, and the supported Photos models already installed locally. Optional expansion also requires Photos Clean Up assets. Apple frameworks and model weights are not bundled.
This is an ad-hoc signed, non-notarized prerelease using private APIs. It has been verified on the development Mac; compatibility across other macOS builds and machines is not established. A downloaded app may require macOS's normal user approval to open.
Validation
- 12 synthetic test suites passed, covering cache persistence, preparation, playback, navigation, controls, camera math, music, and display sleep.
- Actual Apple Clean Up → Reframe → video pipeline passed on a Trip photo, including cache reuse in a separate process.
- Trip-based visual comparison checked the zoom-out range and return toward original framing.
- Fresh-profile settings and preservation of existing preferences checked in the running app.
Source includes build/test tools, the app icon, and reusable research probes. Personal media, generated caches, Apple binaries, model weights, and decompiled implementation files are excluded.