Release History

What's new

All notable changes to PatternSpace are documented here.

2.4

Repeatable LUT delivery

  • Save and reopen sessions: Keep embedded sources, nested operations, and LUT/ICC export settings together in a .pslutchain file. Saving and opening sessions are free.
  • One Outputs list: The top of the Export inspector lists everything that will be written. Add Output adds more LUT formats and grid sizes, Add ICC Profile adds one ICC DeviceLink, and with several outputs the export button becomes Export All…, with file-name templates, overwrite confirmation, cancellation, and per-output results and quality warnings.
  • PDF delivery reports: Turn on Include report to record the source, chain, chain-to-export difference, export verification, warnings, grey-axis curves, and an optional reference-LUT comparison with each export.
  • Clearer settings: General, Purchases, and Privacy now have separate tabs; choose System, Light, or Dark appearance for PatternSpace’s windows. Purchases shows Pro and DeckLink SDI Output with Restore Purchases. Blank after inactivity is now in Settings › General › Output.
  • Desktop Video 16.x: DeckLink SDI Output accepts Blackmagic Desktop Video 16.4 or any later 16.x release, so a Mac updated to 16.5 no longer reports the runtime as unavailable.
  • More responsive output: The output window and preview redraw only when their visible content or settings change, JSON display lists read each display profile once per request, and opening the output window no longer hangs on a cold shader cache.
2.3 Mac App Store

Output confidence

  • Output Check: Review display/SDI configuration, profile and gamma-table observations, HDR headroom, and your brightness/reference-mode assumptions.
  • Signal Details: Compare received source values, app mapping, and prepared/emitted SDI software frames. Physical cable values remain unknown without external capture.
  • Explicit diagnostic probes: Choose one range-boundary or code-step sample and send it deliberately. Opening, refreshing, copying, or exporting observations does not send a patch.
  • ICC Verify: Compare an offline ColorSync/Core Graphics conversion with a profile’s matrix/TRC description and export JSON/CSV results. Identity comparisons are refused; Apple’s near-black inverse-slope cap is explained separately. This is a numeric check, not a display measurement.
  • Calibration Workflow guide: Follow characterization, verification, activation and measurement through the same SDR Reference preset.
  • LUT Patterns: Compare before/after calibration patches and code values at a selected step or prepared export: grey ramps, primary/secondary ramps, gamut sweeps and ColorChecker 24.
  • Simpler LUT export: Export… in the bottom bar (⌘E) exports the whole chain from any selected step and prepares it if needed. Status is visible; doubled file extensions are fixed and Esc closes the window.
  • Reporting controls: New Settings let you turn off crash reports, release-health sessions and anonymous performance measurements. Optional detailed diagnostics is off by default and adds error messages, file/folder names, activity logs and a random installation identifier. Enabling details takes effect next launch; disabling takes effect immediately.
  • Uninterrupted previews: Previews and output continue while the Export Diagnostics save panel is open.
  • SDK 1.1.0: Capability-gated read-only snapshots and guarded probes. Legacy advertised bit depth describes the source/container contract, not a measured HDMI link.
2.2 Mac App Store
Added
  • Detailed LUT analysis — Explore every step with Curves, RGB Slices and Points views. Review channel balance, code-value changes, reversals, separability and crosstalk, and compare the chain with the exact LUT export will write. Read the LUT Tools guide.
  • Automatic export preparation — Select Export to prepare and verify the LUT or ICC artifact automatically. Chain and settings changes refresh the result, with progress, Cancel and Retry. Preparation remains free.
  • A clearer LUT workbench — Pinned Analysis gives live feedback above the settings. Overview arranges summary and diagnostic cards to fit the window; the Analysis window has its own step selection and opens with ⌥⌘A. Source cards and a shared file picker keep the working LUT until a replacement loads and validates.
  • Filter and signal-range controls — Smooth, sharpen or relax a correction with the new Filter step. Adjust also includes presets for common Full and Legal signal-range conversions.
  • LUT Fix and inverse reports — Repair grey-axis reversals with optional 0–1 clamping. Request advanced invertibility analysis from Overview with Pro to review inverse coverage, fold evidence and round trips; sampled solver results remain free, and large analyses keep the app responsive. These reports describe numerical behavior before encoding, not measured display accuracy or guaranteed invertibility.
  • Blank, Resume and output ownership — Blank the selected display or SDI output without ending the session, then restore the retained output. Blanking persists through sleep and wake; local takeover asks for confirmation while a controller is active. See who controls the output and choose an optional inactivity timer; elapsed time does not establish that a meter has finished.
  • Capability-gated DeckLink HDR — With Pro and the separate SDI add-on, compatible hardware offers 1080p/UHD PQ and HLG with static HDR metadata and mastering-display choices. Configuration separates Video Mode, Signal and Container. Available modes depend on the device and single-link support.
  • ICC tone-curve choice — Choose parametric or sampled tone curves for gamma-based ICC profiles.
Changed
  • Clearer HDR setup and diagnostics — HDR guidance points to the macOS High Dynamic Range setting when a display reports no EDR headroom. Peak White labels follow the active preset, and output diagnostics show the effective color path and values.
  • Logs and consistent SDR stimuli — Filter and copy Activity Log entries or export session diagnostics for support. SDR library stimuli follow the selected preset consistently; EDR logging avoids repeated minor changes.
  • More reliable SDI sessions — Signal settings remain active for the session, RGB sampling is confirmed as 4:4:4, and lower progressive rates use the correct timeline. SDI follows its selected format independently of display presets, builds UHD frames faster, and completes superseded patch requests. Output timeouts require Recover SDI Output; failed recovery keeps output blocked.
  • Purchase and protocol guidance — Retry failed Pro purchase loading. CalMAN requires its own UPGCI support. PatternSpace JSON adds output.blank, output.resume and output-owner status for compatible scripts.
  • Simpler first launch — The initial guidance overlay is gone; the persistent Get Pro entry and app-menu command remain available.
2.1 Mac App Store
Changed
  • Faster LUT export and inversion — Cube and other text-based LUT formats export about 5× faster with byte-identical output, and inverting large LUTs is much quicker.
  • Cancel Prepare — A long Prepare stops shortly after you press Cancel, in every phase.
  • Clearer inversion results — Invert and Subtract list any samples they could not invert exactly, with step labels and residuals, and inversion errors name the channel and the cause.
  • ICC DeviceLink export — Listed as “ICC DeviceLink (RGB → RGB)”. Export writes exactly the profile Prepare validated; when calibration curves can’t be included, Prepare names the reason instead of silently omitting them. Read the LUT Tools guide.
  • Clearer wording — LUT Tools reports “Out-of-range samples” and “Checks”, the HDR preset is named “HDR PQ — No Tone Mapping”, and the purchase sheets describe exactly what Pro and DeckLink SDI Output include. Upgrade buttons show the live App Store price.
Fixed
  • ICC profile structure — Matrix profiles with sampled tone curves are no longer labelled as 3D-LUT profiles, and assignment verification now also checks the white point and calibration curves.
  • 1D Subtract export — Subtracting a 1D LUT no longer fails with “Unsupported LUT structure”.
2.0 Mac App Store
New workflows
  • DeckLink SDI Output — A separate one-time purchase for solid and window calibration patches through supported Blackmagic hardware. Production output supports progressive 720p/1080p SDR, 10-bit YCbCr, Video (Legal) range, BT.709, and gamma 2.4. Requires Desktop Video 16.4.x. ColourSpace, CalMAN, and PGenerator automation also require Pro. Read the SDI setup guide.
  • LUT Tools (Beta) — Build a chain from an imported LUT or identity transform. Compose branches, apply ASC CDL and scaling adjustments, inspect the result, and prepare a converted export. Subtract and Invert use numerical inversion with limits where source data is clipped or non-invertible. Preparation is free; writing files requires Pro. Explore the LUT workflow.
  • LUT interchange and export checks — Supported Cube, 3DL, CLF, and other LUT formats include format-specific checks and conversion notices. ARRI Look import has documented fidelity limits. Prepared LUT exports are re-read for comparison; these checks do not certify a display's measured accuracy.
  • ICC DeviceLink export — Export a baked 33³ RGB-to-RGB chain for software that supports this ICC DeviceLink type. The separate ICC Profiles window retains the SDR display-profile and per-channel VCGT workflows. A DeviceLink is not a system display profile.
1.2 Mac App Store
Added
  • ICC Profile Builder — Build a matrix/TRC ICC profile from editable primaries and an SDR transfer function (sRGB, γ2.2, γ2.4, BT.1886, Linear), with a live CIE-xy gamut plot, white-point CCT, and gamut coverage. Inspect the active display profile or any .icc/.icm file, and compare any profile against a build spec or output preset. Building and inspecting are free; exporting a .icc requires PatternSpace Pro.
  • Calibrate from a LUT (VCGT) — Import a .cube calibration LUT and export it as an ICC profile with a VCGT tag, or apply the calibration's gamma curves live to the selected display — session-volatile, verified by reading the ramp back, and auto-reverted on the next launch. Exporting and live apply require Pro.
  • Guided profile assignment & restore — Assign a generated or calibrated profile as the display's system profile through a guided handoff, confirmed by reading the active profile back. Assignments are keyed to the physical display and survive reconnecting monitors, with a guided restore to the previous profile.
  • Metal/EDR in-window preview — The Generator preview now renders active patches and built-in patterns through the same Metal pipeline as the fullscreen patch window — including output presets, EDR-clamped Peak White, and measurement range.
  • Platform-aware help — Help articles now show macOS-specific guidance and screenshots, with the ICC Profile Builder guide delivered as a macOS-only article.
  • App Store–promoted Pro — PatternSpace Pro is now eligible for promotion directly on its App Store product page.
Fixed
  • Pro upgrade sheet layout — Fixed text truncation and multiline labels that could clip instead of expanding to fit their content.
1.1 Mac App Store
Added
  • Free SDR output tier — Device Native, Display SDR, and the full set of 14 SDR Reference presets (sRGB, Adobe RGB, P3, BT.709/BT.1886, BT.2020, DCI, and more), with Full and Legal measurement range — no purchase required.
  • PatternSpace Remote evaluation — The first-party WebSocket/JSON protocol is now free to try: pair a client and render up to 25 patches per session. Pro removes the limit.
  • Advanced HDR output — HDR PQ (untone-mapped), system-tone-mapped HDR (P3-D65 and BT.2020 ST 2084), Display HDR, and Linear HDR presets, with Peak White and EDR controls plus live EDR headroom diagnostics. (Pro)
  • Preset Diagnostics Inspector — Gamut, transfer function, encoding, EDR headroom, estimated peak luminance, and the active display profile at a glance.
  • Per-display Peak White — Each display keeps its own Peak White value with display-aware clamping, plus a display details popover with profile and EDR information.
Changed
  • Redesigned connected header — A live session readout with patch count, duration, and average patch timing, plus a clearer evaluation status for free users.
  • Explicit output color model — The ColorSync on/off toggle is replaced by self-describing output color presets, so what reaches the panel is always explicit.
  • Localization — The activity log and all connection-status labels are fully localized in German, Spanish, French, and Italian.
Fixed
  • High-rate patch handling — Fast calibration sweeps no longer freeze the patch display; incoming patches are coalesced at ~60 Hz so long automated runs stay responsive and accurate.
  • ColourSpace long-run hardening — Malformed or out-of-range patch data is rejected safely, verified with a 10,000-patch soak test.
1.0 App Store Launch
Added
  • Mac App Store release — PatternSpace launches on the Mac App Store as a free download with a one-time PatternSpace Pro in-app purchase.
  • PatternSpace Remote protocol — A first-party WebSocket/JSON-RPC remote-control protocol with 4-digit pairing codes, pattern listing, patch display control, device snapshots, and event publishing — with an open SDK on GitHub.
  • PatternSpace Pro — StoreKit-based one-time purchase with restore, refund handling, and Family Sharing support.
  • Built-in help system — Searchable help topics covering every protocol and workflow, localized in English, German, Spanish, French, and Italian.
  • Connection UI redesign — A shared connection shell with per-protocol setup guides for PatternSpace Remote, ColourSpace, CalMAN, and PGenerator, plus a reachable-address picker.
Fixed
  • Remote patch luminance — Protocol-driven patches now linearize display-code RGB values before Metal rendering, fixing incorrect luminance/gamma readings in CalMAN.
1.0 Beta 1 Beta Release
Added
  • Library Cleanup — Removed custom and parametric placeholder cells from the pattern library to focus on predefined, high-quality reference patterns.
  • Search Capability — Initial implementation of cross-category pattern search (infrastructure and UI).
0.2.0 Feature Update
Added
  • Logarithmic Checkerboard — New rendering logic for precise logarithmic grid spacing across 13 levels.
  • Check Composite Pattern — Combined diagnostic pattern with real-time labeling support.
  • ColorChecker SG — Implementation of the 140-patch Semi-Gloss reference target.
  • Resolution Wedge & Star — Advanced diagnostic patterns for sharpness and aliasing evaluation.
  • Geometry & Clipping References — New test patterns for aspect ratio and signal range verification.
  • Shader Comparison Report — Automated validation system comparing Metal shader output against reference PNG assets using PSNR metrics.
  • Double-tap Gesture — New interaction to quickly toggle the patch window on touch-enabled or trackpad devices.
  • Mobile-responsive Website — Initial launch of the PatternSpace website with responsive navigation and documentation.
Changed
  • Calibration Shader Overhaul — Major refactor of all calibration patterns to achieve 1:1 pixel parity with Light Illusion reference targets.
  • Anti-aliased Geometry — Implemented high-quality anti-aliasing for overscan, star, and line patterns.
  • Centralized Shader Logic — Consolidated grid math and coordinate helpers into PatternShared.h for improved consistency.
  • Pattern Catalog Reorganization — Redistributed calibration patterns into more logical categories for better discoverability.
  • Improved Thumbnails — Refreshed asset catalog with high-fidelity pattern previews.
Fixed
  • Window Refresh Reliability — Fixed issues where the patch window would occasionally fail to repaint immediately upon closing or state changes.
  • Coordinate Alignment — Resolved sub-pixel alignment errors in grid and text rendering across various resolutions.
  • Sandbox Entitlements — Clarified and enforced network policy to block unauthorized outgoing connections while allowing protocol traffic.
0.1.0 Initial Beta
Added
  • Calibration pattern category — Metal-shader-rendered calibration patterns with asset-backed previews: Brightness, Contrast, Clipping Range, Contrast Ratio, Contrast Min/Max, Sharpness, Gray Balance, Bars and Black, FALD Stress, Color Ramps (1–3), ColorChecker Classic, and ColorChecker SG.
  • PGenerator protocol support — Full emulation of the PGenerator network protocol, including multi-command bootstrap, pattern catalog listing, system status, configuration commands, and multi-bit depth rectangle support.
  • ColourSpace auto-discovery — Automatic network discovery with sender IP validation and connection lifecycle management.
  • CalMAN protocol support — Connect via CalMAN's Unified Pattern Generator Control Interface (UPGCI) with full geometry and color mapping.
  • Pattern library — Comprehensive GPU-rendered local pattern library across six categories:
    Color
    Solid fills, color bars (H/V, 3/6/12/continuous), step wedges (linear/log), wipes, gradient wipes in RGB/HSL/HSV, random, triangle, composite step-wipe, 4096-color patch.
    Checks
    Overscan, convergence (H/V), resolution wedge (H/V), resolution star, contrast checker/lines, gamma checker/lines, length (H/V), color wipe, clipping targets (broadcast/full), composite.
    Geometry
    Checkerboards (2–32, log), grid, lines (H/V, 2/4/8), squares, points, distortion (circle, squares).
    Swatch
    RGB channel swatches at 64/127/191/255; HSL and HSV hue swatches across 12 hue steps.
    Gamma & Clipping
    Checker and lines patterns per channel (gray, R, G, B); high and low clipping patterns per channel.
  • Peak white / HDR headroom control — Adjustable peak white level for local patterns. Up to 16× headroom on Pro Display XDR.
  • PNG pattern previews — NTSC 720×480 preview thumbnails for all patterns in the library.
  • ColorSync bypass — Toggle to apply or bypass the active ICC profile on the patch output window.
  • Display profile diagnostics — Logs active ICC profile, color space, and EDR headroom on display selection. Detects and logs profile changes on display connect/disconnect.
  • Multi-monitor support — Target any connected display. Automatic fallback to primary display when the selected screen is removed.
  • HUD overlay for same-display mode — Slides in from screen edge with mouse-reveal and keyboard shortcuts. ESC or double-tap to dismiss.
  • Display sleep prevention — Sleep is suppressed while the patch window is active.
  • Session metrics — Live patch count, session duration, and average patch timing.
  • Activity log — Timestamped, source-attributed log with up to 1,000 entries. Selectable and copyable text.
  • Menu bar controller — Menu bar presence with connection status indicator while the patch window is open.
  • Keyboard shortcut — ⌘M to toggle the patch window.
Changed
  • Redesigned main app UI with hidden-title-bar header, sidebar navigation, and updated layout components.
  • Sidebar navigation splits into Generator mode (protocol picker) and Library mode (pattern category picker).
  • Connection status UI simplified; listening state now shown in orange.
  • Resolution-independent coordinate scaling applied to all shaders for correct rendering at any display resolution.
  • Grid-based swatch rendering with corrected color coordinate math matching reference grid specifications.
  • Gamma rendering pipeline updated with corrected power math and explicit linear color space mapping.
Fixed
  • Patch window now correctly forced to match screen frame on open.
  • ColorSync bypass implementation corrected.
  • HUD auto-fade task cancellation prevents visual glitches on re-entry.
  • Metal shader color uniform type corrected from half4 to float4.
  • Double gamma application bug resolved by explicitly mapping layers to corresponding linear color spaces.
  • Gamma lines solid patch brightness formula corrected.