Luxar

Concepts & Architecture:

  • Architecture and Core Concepts
    • Big Picture: What is Luxar?
    • Design Philosophy
    • Architectural Layers
      • Server Layer (FastAPI)
      • Python Layer (Data Creation)
      • Storage Layer (Zarr Format)
      • TypeScript Layer (Viewer)
      • WebGL Layer (Rendering)
    • Core Concepts Deep Dive
      • nD Visualization Paradigm
      • Spatial Indexing Strategy
      • Compound Ordering for nD Data
      • Gaussian Splatting Integration
      • Transform Composition
      • Encoding Strategy Selection
    • Performance Model
      • Write Performance (Python)
      • Read Performance (TypeScript)
      • Rendering Performance (WebGL)
    • When to Use Luxar
      • Luxar is Ideal For:
      • Consider Alternatives For:
    • Common Workflows
      • Workflow 1: Microscopy Time-Series
      • Workflow 2: Multi-Channel Imaging
      • Workflow 3: Gaussian Splat Fitting
    • Key Takeaways
    • Next Steps

Tutorials:

  • Tutorial 1: Creating Your First Scene
    • Goal
    • Step 1: Import and Setup
    • Step 2: Create Sample Data
    • Step 3: Define Dimensions
    • Step 4: Create Scene and Write Data
    • Step 5: Verify and View
    • Key Concepts Demonstrated
      • Scene Graph Hierarchy
      • Progressive Writing
      • Semantic Type Benefits
    • Next Steps
    • Troubleshooting
  • Tutorial 2: nD Navigation and Hypersphere Slicing
    • Goal
    • Core Concept: The Hypersphere Slicing Paradigm
    • Example: Time-Series Cell Tracking
    • Viewing 4D Data
    • Advanced: Extend-to-All
    • Categorical Dimensions
    • Summary
  • Programmatic Server Creation
    • What You Will Learn
    • Prerequisites
    • Creating a Basic Server
    • Integration Testing
    • Serving Multiple Datasets
    • Embedding in a Larger Application
    • Next Steps
  • Gaussian Splatting for Images
    • What is Gaussian Splatting?
    • When to Use Gaussian Splats
    • Basic Gaussian Splat Fitting
    • Understanding Seed Generation Methods
      • Seed Selection is Critical
    • Optimization Parameters
      • Learning Rate
      • Loss Functions
    • Advanced: Dynamic Operations
    • Saving and Visualizing Results
    • Quality vs Compression Tradeoff
    • Calibrating K via Blind-Spot Cross-Validation
    • Building Streaming LOD Ladders
    • Summary
  • Tutorial 4: Performance Optimization
    • Performance Fundamentals
      • Understanding the Bottlenecks
    • Optimization 1: Chunk Size Selection
    • Optimization 2: Spatial Ordering Strategy
    • Optimization 3: Encoding Mode Selection
    • Optimization 4: Prefetching Configuration
    • Optimization 5: Viewer Configuration
    • Billion-Point Dataset Strategy
    • Monitoring Performance
    • Profiling Tools
    • Best Practices Summary
      • Write-Time Optimizations
      • Runtime Optimizations
      • GPU Optimizations
    • Expected Performance
    • Common Issues and Solutions
      • Issue: Slow Initial Load
      • Issue: Low FPS During Navigation
      • Issue: High Memory Usage
    • Advanced: Custom Culling
    • Summary
  • Distributing Scenes
    • What You Will Learn
    • Prerequisites
    • Folder export (zero deps for the recipient)
    • Native bundles (no Python dependency at all)
    • Sharing bundles across machines
    • Window lifecycle
    • Looking ahead: signing and notarization
    • When to use which
    • Sharing a link instead: the hosted viewer

User Guides:

  • Luxar Viewer User Guide
    • Launching the Viewer
      • Opening your own data in the hosted viewer
        • Your host must allow cross-origin reads
        • Configuration for common hosts
        • Directory listings and .luxar-index.json
      • Opening a Zipped Scene
    • URL Parameters
    • Camera Controls
      • Orbit Mode (default)
      • Fly Mode
      • Ortho Mode
    • Keyboard Shortcuts
      • General Navigation and Panels
      • Camera and View
      • Visual Modes
      • nD Dimension Navigation
      • Animation Playback
      • Fly Mode Movement
      • State Export
    • UI Panels
      • Help Overlay (H)
      • Rendering Controls (R)
      • Dimension Sliders (N)
      • Performance Monitor (P)
      • Recording Panel (T)
      • Dataset Browser (O)
      • Scale Bar (B)
      • Colormap Legend (J)
      • Layers Panel (L)
      • Overlays (U)
    • nD Navigation
      • How It Works
      • Using Keyboard Navigation
      • Using Sliders
      • Tips for nD Data
      • Performance limit: 16 dimensions
      • Mesh nodes slice by whole triangles
    • Animation Playback
    • Screenshots and Recording
    • Configuring the Viewer from Python
      • Loading a Viewer Snapshot
      • Priority Chain
      • Available Configuration Categories
      • Story waypoints: a camera pose per hidden-dimension position
      • Sound
    • Tips and Troubleshooting
  • HDR Color Guide for Luxar
    • Overview
    • What is HDR in Luxar?
    • Color Value Ranges
    • Using HDR Colors in Python
      • Basic Usage
      • HDR Color Detection
      • Example Scenes
    • Browser HDR Support
      • Do I Have an HDR Display?
      • Enabling HDR in Chrome
    • Verifying HDR in Luxar
      • Console Test Function
    • Troubleshooting
      • HDR Not Working?
      • Common Issues
    • Current Luxar HDR Implementation
    • Best Practices
      • DO:
      • DON’T:
    • Validation
    • Performance Impact
    • Related Documentation
    • References

Command-Line Interface:

  • Luxar CLI Reference
    • Staying in sync
    • Top-level commands
    • luxar serve
    • luxar optimize
    • luxar restamp-lod
    • luxar demo
    • luxar gsplat
      • Fitting & calibration
      • Level-of-detail
      • Scene & interchange
      • Inspection
      • Editing & selection
    • luxar gsplat batch-fit
    • luxar env
      • luxar env bake
      • luxar env attach
    • luxar mesh
      • luxar mesh lod
        • The reveal knobs

Format Specifications:

  • Luxar Zarr Format Specification
    • Version: 0.2
    • Overview
    • End-to-End Data Flow
    • Format Structure
      • Compression & the luxar_delta_v1 filter
    • Scene-Level Attributes
      • citation (optional root attr)
      • input_digests (optional root attr)
      • incomplete (optional root attr)
    • Node Types
      • 1. Group Nodes
        • Volumetric blending and absorption
      • 2. Group Kinds — Specialized group Nodes
        • kind: "lod" — Level-of-Detail group
        • kind: "partition" — Spatial-decomposition group
        • Multi-additive LOD (progressive loading) — Points / Lines / GSplats
      • 3. Points Nodes
        • positions/ (Required)
        • colors/ (Optional)
        • radii/ (Optional)
        • sharpnesses/ (Optional)
      • 4. Lines Nodes
        • vertices/ (Required)
        • segments/ (Required, auto-generated)
        • widths/ (Required)
        • colors/ (Optional)
        • sharpnesses/ (Optional)
        • scalars/ (Optional)
      • 5. Mesh Nodes
        • vertices/ (Required)
        • faces/ (Required)
        • normals/ (Optional)
        • colors/ (Optional)
        • scalars/ (Optional)
        • nD slicing: whole-triangle cull
      • 6. Sound Nodes
    • Scalar Colormap Attributes
    • Environment (baked scene lighting)
    • Layers (Viewer Panel)
      • Group Layers (Composite)
      • Initial Visibility
      • Rendering Attribute Composition
      • Edits Are Viewer-Only
    • Overlays (Screen-Space Annotations)
      • Overlay Types
      • Common Attributes
      • Dimension-Aware Visibility
    • Point Spatial Index
      • Design Philosophy
      • Index Structure
        • Points Group .zattrs (Spatial Index Metadata)
        • Ordering-metadata shape: flat vs namespaced
        • chunk_bounds/ Array
        • Per-Element Labels (CSR-style)
        • Per-Element Keys (CSR-style)
        • Per-Element Image Labels (CSR-style)
      • Hover Overlays
      • Element Interaction Templates
      • Compound Ordering
      • Space-Filling Curve Encoding
      • Query Algorithm
      • Chunk to Point Range Conversion
      • Performance Characteristics
      • Benefits of Chunk-Based Spatial Indexing
      • Backward Compatibility
      • Implementation in LuxarZarrCompiler
    • Transform System
    • nD Transform System
      • Storage Format
      • Affine Entry (Continuous / Discrete Ordinal Dimensions)
      • Permutation Entry (Categorical Dimensions)
      • Hierarchical Composition
      • Viewer Behavior
    • Dimension System
      • Scene Dimensions
        • Dimension Types
        • Dimension Attributes
        • Categorical Dimensions
      • nD Point Cloud Support
    • Viewer Constraints and Performance
    • Chunking Strategy
      • Chunking with Spatial Index
    • Array Encodings
    • Compression
    • Metadata Consolidation
    • Version History
    • Best Practices
    • Example Creation (Python)
      • Basic Example
      • Example with Spatial Index
    • Compatibility Notes
    • Future Extensions (Planned)
  • luxar.gsplats.io - Technical Specification
    • Purpose
    • Use Cases
    • Core Data Structure
      • Broadcasting Convention
    • Format Versions
    • Zarr Structure (v3.x — node tree)
      • Shape 1 — bare leaf (single splat set)
      • Shape 2 — additive ladder (prefix-sum LODs over the same N splats)
      • Shape 3 — substitutive LOD (kind=lod group)
      • Shape 4 — spatial partition (kind=partition group)
      • Shape 5 — full pyramid (substitutive × additive, nested)
      • Root Attributes
      • Per-Leaf Splat Attributes
      • Quality Stamps (lod_stats / level_stats, format-additive)
      • Fitting Group Attributes (Fitter-Agnostic)
      • Pipeline Group Attributes (Optional)
      • Provenance Group Attributes (Optional)
    • Spatial Ordering and Indexing
      • GSplats-Specific Details
    • Splat Ordering for Compression
      • Why Order Matters
      • Space-Filling Curves
        • Morton (Z-order)
        • Hilbert Curve
      • Ordering Specification
    • Additional Compression Techniques
      • 1. Quantization
      • 2. Entropy Coding with Spatial Coherence
      • 3. Attribute Factorization
      • 4. Culling Before Storage
    • Compression Configuration
      • Blosc Settings
      • The luxar_delta_v1 delta filter (v3.3, optional, probe-gated)
      • Chunk Sizing
    • Encoding Metadata Preservation
      • Encoding Metadata Storage
      • Automatic Decoding on Load
    • API Design
      • Saving
      • Loading
      • Inspection
    • Standalone vs Embedded Formats
      • Standalone Format (.gsplats.zarr)
      • Embedded Format (Luxar Scene)
      • Relationship
    • Luxar Scene Integration
    • Design Decisions
    • References
    • Changelog
  • Mesh Node Specification
    • 1. Motivation
      • 1.1 Existing forward-declaration
    • 2. Where mesh is symmetric, and where it is not
      • 2.1 The storage layer does not transfer
      • 2.2 There is no primary size scalar
    • 3. Data model
      • 3.1 Node type
      • 3.2 Arrays
      • 3.3 Metadata attrs
      • 3.4 Normals are 3D, positions are nD
      • 3.5 Validation
      • 3.6 Authoring lint
      • 3.7 dim_order, normal_dims and face winding
    • 4. Python API
    • 5. nD semantics: per-vertex slab test, whole-triangle cull
      • 5.1 The decision
      • 5.2 Semantics, reused verbatim from the lines kernel
        • 5.2.1 Tolerance — mesh needs its own strategy, and cannot reuse the Lines one
      • 5.3 Consequence, stated plainly
      • 5.4 Kernel
      • 5.5 Fast path
    • 6. Rendering
      • 6.1 Geometry
        • 6.1.1 Color/scalar vertex-attribute dtypes
      • 6.2 Shading
      • 6.3 Blending and depth
        • Where the default lives — and where it must NOT
      • 6.4 Materials
        • The physical family (material="physical")
      • 6.5 Picking
    • 7. Loading
    • 8. Integration checklist
    • 9. Explicitly out of scope
      • 9.1 Reveal ladders — an additive prefix as an EFFECT, never as a LOD
      • 9.2 kind=partition — lifted
    • 10. Architecture: what the consolidation changed for mesh
      • 10.1 What landed
      • 10.2 What that means for a fourth type
      • 10.3 What deliberately stayed specialized
      • 10.4 One safety rule mesh must follow
    • 11. Phased delivery
  • Formats & Migration
    • Two on-disk formats
    • Versioning policy
      • One version-check rule, both formats, both languages
      • Scene 0.1 → 0.2
    • Supported legacy inputs & migration
      • migrate-format vs reencode
    • LOD terminology map
    • See also
  • Compatibility & Deprecation Policy
    • What is public
    • Versioning: CalVer, and its npm spelling
    • The version-check rule
    • The deprecation window
      • Mechanisms
      • What is frozen
    • Viewer persistence: storage-format bumps reset, never migrate
    • The three peer dependency
    • How changes are announced

Technical Specifications:

  • nD Transforms Specification
    • 1. Motivation
    • 2. Design Principles
    • 3. Dimension Domains
    • 4. Transform Definitions
      • 4.1 Continuous / Discrete Ordinal Dimensions
      • 4.2 Categorical Dimensions
    • 5. Storage Format
      • 5.1 Zarr Attributes
      • 5.2 Affine Entry Schema
      • 5.3 Permutation Entry Schema
    • 6. Python API
      • 6.1 Setting nD Transforms
      • 6.2 Node Properties
      • 6.3 Validation
    • 7. Hierarchical Composition
      • 7.1 Affine Composition (Continuous / Discrete)
      • 7.2 Permutation Composition (Categorical)
      • 7.3 Missing Transforms
    • 8. Bounds Expansion
    • 9. Viewer Implementation (TypeScript) — Inverse-Query Approach
      • 9.1 Data Flow (Unchanged!)
      • 9.2 Inverse-Query Design
        • 9.2.1 The no-preimage rule (discrete dimensions)
      • 9.3 Where It’s Applied
      • 9.4 Advantages Over Per-Point Transform
      • 9.5 extend_to_all Interaction
      • 9.6 Hierarchical Composition
    • 10. Performance Analysis
    • 11. Edge Cases
      • 11.1 Scale = 0
      • 11.2 Negative Scale
      • 11.3 Fractional Scale on Discrete Dimensions
      • 11.4 Permutation on Non-Categorical Dimension
      • 11.5 Affine on Categorical Dimension
      • 11.6 Cyclic Dimensions
    • 12. Backward Compatibility
    • 13. Future Extensions
  • Cache Prefetching Specification
    • Overview
      • Motivation
    • Architecture
      • Design Decision: Separate PrefetchManager
      • Component Diagram
    • Trigger Points
      • Why Not Prefetch on L1 Hit?
    • Adjacent Chunk Calculation
      • Chunk Key Formats
      • Adjacency Definition
      • Boundary Handling
      • Chunk Index Parsing
      • Adjacent Key Generation
    • Priority Mechanism
      • The Challenge
      • How Priority Works
      • JavaScript Async Model
      • Concurrency Limiting
      • Fetch Priority API (Optional Enhancement)
    • Integration
      • Store Modifications Required
      • Lifecycle Management
    • Configuration
      • Options
      • URL Parameters
    • Performance Considerations
      • Memory Impact
      • Network Impact
      • When Prefetching Hurts
    • Testing Strategy
      • Unit Tests
      • Integration Tests
      • E2E Tests (Playwright)
    • Future Enhancements
      • Directional Prediction
      • Adaptive Concurrency
      • Prefetch Buffer
    • Changelog
  • GSplat Depth Sorting — Phased Implementation Plan (Option 3a)
    • 1. Problem statement (facts on the ground)
      • Overlapping-node authoring rule
    • 2. Target architecture
      • Pinned design decisions
      • 2.1 Sorting execution model
    • 3. Phase 0 — Correct alpha for normal mode (prerequisite)
    • 4. Phase 1 — Texture-backed splat storage + always-on ordering attribute
    • 5. Phase 2 — SortWorker + depth-ordered commits
    • 6. Phase 3 — Camera-triggered re-sort
    • 7. Phase 4 (optional, perf) — Partial texture uploads
      • Stage 1 — slack elimination (LANDED 2026-07)
      • Stage 2 — append-only writes for ladder streaming (LANDED 2026-07, all three geometries)
      • Stage 3 — WebGPU partial-upload parity ([POST] — MEASURED-REJECT 2026-07-25, revisit criteria below)
    • 8. Explicit deferrals
    • 9. Sequencing, sizing, and ship gates
    • 10. Risk register (ranked; what is actually hard about this)
    • 11. Adversarial re-check changelogs (all findings applied above)
      • Rev 3
      • Rev 2
  • Volumetric Blending Mode — Emission–Absorption Compositing
    • 1. Motivation and optical model
      • 1.1 Mode taxonomy after the change
    • 2. Relation to NeRF and 3DGS (facts, to prevent drift)
    • 3. Mathematics
      • 3.1 Per-splat quantities (gsplats)
      • 3.2 Numerical form
      • 3.3 Invariants (testable laws)
    • 4. Format and Python API
      • 4.1 Enum, validation, node property
      • 4.2 Default stamping and composition
      • 4.3 Scope
    • 5. Viewer design
      • 5.1 Mode SSOT and blend state
      • 5.2 Depth-sort gating: needsDepthSort(mode)
      • 5.3 Attr composition and the uniform
      • 5.4 Fragment shader (GLSL + TSL twins)
      • 5.4.1 Per-element opacity via the color ALPHA channel (Phase 2 — IMPLEMENTED)
      • 5.5 Layers-panel UI
    • 6. Interactions with existing systems
    • 7. Phased implementation plan
    • 8. Test plan
    • 9. Risk register
    • 10. Changelog
  • Sub-Pixel Jitter for Temporal Anti-Aliasing (TAA)
    • Overview
    • Architecture
      • Components
      • Data Flow (per frame)
    • Jitter Patterns
      • 1. Halton Sequence (default, recommended)
      • 2. Random (uniform disk)
      • 3. Grid (4xMSAA positions)
    • Pixel-to-World Conversion
    • Configuration
    • UI Integration
    • AnimationController Integration
    • Performance Characteristics
    • Limitations and Known Issues
    • Future Work (to complete TAA)
  • Layer Order — Authored Cross-Layer Draw Order
    • 1. What exists today — and why overlapping layers already look stable
    • 2. The mechanism: depth bands
    • 3. Pinned decisions
    • 4. Why this is cheap
    • 5. Interaction with BSP part order
      • 5.1 The full hierarchy of orders
      • 5.2 What a level on a group means
    • 6. Authoring surface (Python)
    • 7. Viewer surface
    • 8. What this does NOT fix
    • 9. Phases
    • 10. Testing and ship gates
    • 11. Risks
    • 12. Open questions
    • 13. References
  • Remote Control Spec — driving a Luxar viewer from an external program
    • 1. Purpose
    • 2. Phase A — viewer API (implemented)
      • 2.1 Camera flight
      • 2.2 Rendering settings
      • 2.3 Layers
      • 2.4 State mirror and events
    • 3. Phase B — WebSocket hub (implemented)
      • 3.1 Topology
      • 3.2 Wire format
      • 3.3 Viewer side
      • 3.4 Python side
      • 3.5 Security
    • 4. Phase C — authored waypoints, the panel, and kiosk mode (implemented)
      • 4.1 Story dimension and waypoints (implemented)
      • 4.2 The control panel page (implemented)
      • 4.3 Kiosk permissions (implemented)
      • 4.4 Authored presentation (implemented)
      • 4.5 Where the hub lives (implemented)
    • 5. Phase D — conversational agent (design)
    • 6. Non-goals
  • Mesh Physical Materials Spec — glass, metal and iridescence on Luxar meshes
    • 1. Motivation
    • 2. What the current model already gives (baseline, shipped)
    • 3. Design
      • 3.1 Authoring: an opt-in material on add_mesh
      • 3.2 Viewer: a third material family, not a variant
      • 3.3 Lighting: a scene environment, not scene lights
      • 3.4 Transmission and what it can see
      • 3.5 Colour pipeline
      • 3.6 Dual-backend parity
    • 4. Phases
    • 5. Explicitly out of scope
    • 6. Open questions
  • Sound Spec — ambient and spatial audio as scene-graph nodes
    • 1. Motivation
    • 2. Framework
    • 3. Data model
      • 3.1 Python authoring
      • 3.2 On disk
      • 3.3 viewer_config.audio
    • 4. Viewer architecture
      • 4.1 src/audio/
      • 4.2 Layers panel and rail
      • 4.3 Triggers and the waypoint driver
      • 4.4 Autoplay
      • 4.5 Remote API (extends REMOTE_CONTROL_SPEC.md)
    • 5. The stories demo
    • 6. Phases
    • 7. Risks and open questions
  • Gaussian Splats Dimension Mapping
    • Overview
      • Design Principles
    • API
      • Parameters
    • Usage Examples
      • 3D Splats in 4D Scene (Extension)
      • Full-Dimensional Splats (Automatic)
      • Multiple Extended Dimensions
      • Dimension Reordering with Fill
    • Validation Rules
      • Rule 1: Shape Consistency
      • Rule 2: Cholesky Consistency
      • Rule 3: Mutual Exclusivity
      • Rule 4: Complete Coverage
      • Rule 5: Dimension Name Validity
    • Storage Format (Zarr)
      • Metadata
      • Zarr Arrays
    • Viewer Processing
      • Loading Phase
      • nD to 3D Projection
    • References
  • LuxarLayer Embed Contract
    • Scope
    • Ownership and lifecycle
    • Public surface
    • Per-frame ordering
    • Dimensions
    • Draw order and visibility
    • Context loss and restore
    • Single-instance rule
    • Known limitations
    • Coverage note

Developer Guides:

  • Build System Specification
    • Overview
      • Design Goals
    • Prerequisites
      • Minimal Requirements
      • System-Specific Prerequisites
    • Quick Start
    • Development Setup Process
      • What make setup-dev Does
        • Step 1: Python Environment
        • Step 2: Node.js Environment
        • Step 3: Python Virtual Environment
        • Step 4: TypeScript Dependencies
        • Step 5: Optional Accelerators (WASM + CUDA)
      • Rust/WASM Setup Details
      • Editable Installs vs. Release Wheels
      • Native Launcher Setup Details
      • Environment Detection
    • Makefile Commands Reference
      • Setup & Installation
      • Quality & Testing
      • Viewer Development
      • WASM Development
      • CUDA & GPU Extensions
      • Data & Demos
      • Documentation
      • Utilities
      • Release & Publishing
        • Native backend release verification
    • Dependency Management
      • Node.js via nvm (Linux)
      • Python Tools via pipx
      • Hatch for Python Environments
      • pnpm for TypeScript
    • Troubleshooting
      • Common Issues
        • “pipx not found”
        • “Node.js not found” or “version too old”
        • “Hatch not found” after installation
        • “wasm-pack not found”
        • nvm not available in make commands
      • Verifying Installation
      • Clean Slate Recovery
    • HPC / Slurm Cluster Setup
      • Overview of HPC limitations and solutions
      • Step-by-step HPC first-time setup
      • How make build-cuda SLURM=1 works
      • Configurable Slurm variables (Makefile)
      • Diagnosing build failures
      • Multi-architecture CUDA build
      • Build metadata (cuda_build_info.json)
      • Batch fitting on Slurm
      • Running smoke tests
    • Environment Variables
    • CI/CD Integration
      • Domain-scoped CI: a suite runs only when its domain changed
      • Which Python versions CI runs
      • Recovering a rootless Podman runner outage
    • Architecture Notes
      • Why nvm Instead of System Node.js?
      • Why pipx Instead of pip?
      • Why Hatch Instead of venv/poetry?
    • Version Requirements
    • Related Documentation
  • Documentation Quality Gate
    • Required checks
    • Completeness ratchet
      • Python
      • TypeScript
      • Repository paths
      • Changelog fragments
      • Completeness baseline
      • Machine-readable report
    • TypeDoc warning ratchet
    • Internal and external links
    • Phased debt reduction
      • Completed completeness phases
      • TypeDoc warning phases
    • Local commands
  • TypeScript Testing Guidelines - Luxar Viewer
    • Python Testing Note
    • Problem: Over-Mocking Antipattern
      • What is Over-Mocking?
      • Current Issues in Codebase
      • Why This is Bad
    • The Solution: Mock Only External Dependencies
      • What to Mock
    • Refactoring Strategy
      • Step 1: Identify What MUST Be Mocked
      • Step 2: Remove Internal Mocks
      • Step 3: Use Test Fixtures Instead of Mocks
    • Example Refactoring
      • Before: Over-Mocked Test
      • After: Minimal Mocking
    • Specific Patterns
      • Pattern 1: Spy on Specific Methods
      • Pattern 2: Dependency Injection for Testability
      • Pattern 3: Test Fixtures Over Mocks
    • Testing Principles
      • 1. Test Behavior, Not Implementation
      • 2. Test Public APIs
      • 3. Keep Tests Simple
    • Resources
    • Questions?
  • Playwright Testing & AI-Assisted Debugging Guide
    • Table of Contents
    • Overview
      • Why Playwright for Three.js/WebGL?
    • Quick Start
      • 1. Prerequisites
      • 2. Run the Agent Driver (AI Debugging)
      • 3. Run E2E Tests
    • For AI Agents (Claude Code)
      • Your New Capabilities
      • How to Debug
        • Step 1: Run the Agent Driver
        • Step 2: Read the Output
        • Step 3: Inspect Luxar State
        • Step 4: Analyze and Fix
        • Step 5: Verify Fix
      • Debugging Workflow Example
      • Important Rules for AI Debugging
    • Available Scripts
      • Agent Driver Scripts
      • E2E Test Scripts
    • Writing Tests
      • Best Practices for Test Assertions ⭐
      • Basic Test Structure
      • Using Helper Functions
      • Testing nD Navigation
      • Screenshot Testing
    • Debugging
      • Debug Individual Tests
      • View Traces
      • Common Issues
        • Server identity or fixed port is already in use
        • 1. Test Times Out
        • 2. Screenshot Doesn’t Match
        • 3. GPU Acceleration Not Working
        • 4. Debug Mode Not Enabled
    • Troubleshooting
      • “No tests found”
      • “Cannot find module @playwright/test”
      • “Page crashed”
      • Timeouts across many unrelated specs at once
      • “Browser context closed”
    • Best Practices
      • For AI Agents
      • For Developers
      • For CI/CD
    • Advanced Topics
      • Coordinate-Based Interactions
      • Performance Testing
      • Memory Leak Testing
    • Resources
    • Support
  • Luxar E2E Testing - Quick Reference Guide
    • 🎯 Console Output Capture - YES, It Works!
      • Three Methods to Capture Browser Console:
        • 1. Real-Time Console Listener (Most Common)
        • 2. Console Interceptor History
        • 3. Agent Driver Tool (Manual Debugging)
    • 🔗 Data Source URL Format
    • 🧪 Test Suite Organization
      • Test Files
    • 🚀 Common Test Commands
    • 📋 Pre-Test Checklist
    • 🔍 Debugging Failed Tests
      • Step 1: View HTML Report
      • Step 2: Check Error Context
      • Step 3: Run Single Test in Debug Mode
      • Step 4: Use Agent Driver for Manual Inspection
    • 🎓 Writing New E2E Tests
      • Template:
      • Best Practices:
    • 🐛 Common Issues & Solutions
      • Issue: Server identity check or port startup fails
      • Issue: Tests timeout waiting for initialization
      • Issue: Visual regression tests fail
      • Issue: “Executable doesn’t exist” error
      • Issue: Many unrelated tests time out at once on a busy machine
      • Issue: Tests flaky/intermittent failures
    • 📊 Performance Baselines
    • 🎯 Test Coverage Checklist
    • 🔬 Advanced Testing Techniques
      • Accessing Internal State
      • Triggering Manual Renders
      • Inspecting Spatial Index
      • Taking Custom Screenshots
    • 🎉 Summary
  • JSDoc Style Guide for Luxar Viewer
    • General Principles
    • File-Level Documentation
    • Function Documentation
      • Complete Template
      • Minimal Acceptable (Simple Functions)
    • Real Examples from Luxar
      • Example 1: Public Method with Complex Logic
      • Example 2: Interface Documentation
      • Example 3: Class Documentation
      • Example 4: Utility Function
    • Tag Usage Guidelines
      • @param
      • @returns
      • @throws
      • @example
      • @see
    • Special Cases
      • Constructors
      • Getters/Setters
      • Event Handlers
      • Deprecated Functions
    • Common Mistakes to Avoid
      • ❌ Don’t: Repeat Type Information
      • ❌ Don’t: State the Obvious
      • ❌ Don’t: Use Vague Descriptions
      • ❌ Don’t: Write Novel-Length Documentation
    • Documentation Checklist
    • Tools and Automation
      • VS Code Extension
      • Linting
      • Coverage Checking
    • Questions?
  • Console Output Style Guide
    • Overview
    • Core Principles
    • Message Format
      • Examples
    • Standard Emojis
      • Status Indicators
      • Action Indicators
      • Domain-Specific
    • Module Names
      • Core Modules
      • Data Loading
      • Rendering
      • Controls & UI
    • Implementation
      • Using the Log Utility
      • Basic Logging
      • Action-Specific Logging
      • Custom Emojis
      • Module-Specific Logger
    • Best Practices
      • 1. Appropriate Verbosity
      • 2. Message Clarity
      • 3. Error Handling
      • 4. Progress Indication
      • 5. Data Statistics
    • Console Interceptor Integration
    • Examples of Good vs Bad Logging
      • ❌ Bad
      • ✅ Good
      • ❌ Too Verbose
      • ✅ Appropriate Detail
    • Debugging Features
      • Development-Only Logs
      • Performance Monitoring
    • Updating Existing Code
    • Conclusion
  • Luxar Viewer UI Design Guide
    • 1. Design philosophy — the “quiet instrument”
    • 2. Where the truth lives
    • 3. Design tokens
      • 3.1 Color tokens
      • 3.2 Typography tokens
      • 3.3 Spacing tokens
      • 3.4 Effect tokens
      • 3.5 Z-index tokens
    • 4. The four themes
      • 4.1 Theme mechanics (invariants)
    • 5. The glass-surface system
      • 5.1 Hard constraints on every glass surface
    • 6. Color semantics — the rules
    • 7. Surfaces
      • 7.1 The panel surface recipe (the “one material”)
      • 7.2 Modals
      • 7.3 Headers
      • 7.4 Scroll containers
      • 7.5 The control rail and its satellites
      • 7.6 GUI controller rows (custom GUI library, src/ui/gui/)
        • 7.6.1 Slider interaction contract
      • 7.7 The panel filter row (pending #1508)
      • 7.8 Context menus (pending #1508)
    • 8. Typography
      • 8.1 Scale usage
      • 8.2 Numerals — the instrument voice
      • 8.3 Micro-labels and the tick motif
      • 8.4 <kbd> chips
      • 8.5 <code> chips
    • 9. Iconography
      • 9.1 The rail contract (default for all new icons)
      • 9.2 The monitor micro-contract (dense data UIs only)
      • 9.3 Rendered size ladder
    • 10. Motion
      • 10.1 Micro-interactions
      • 10.2 Entry/exit of surfaces
      • 10.3 Staggered reveals (data panels)
      • 10.4 Reduced motion — mandatory
    • 11. Layout & placement
      • 11.5 Touch and coarse pointers
    • 12. Interaction states & accessibility
    • 13. Naming & file conventions
    • 14. Checklist for a new UI surface
    • 15. Known drift (documented debt — do not copy)
      • 15.1 Hardcoded values / phantom tokens
      • 15.2 Accessibility gaps
      • 15.3 Divergent contracts (tolerated, bounded)
      • 15.4 Glass-constraint (§5.1) and layer-tier violations
      • 15.5 Private context menu predating the shared widget
      • 15.6 Sanctioned exceptions (not drift — do not migrate)
    • 16. Keeping this guide authoritative
  • Network Simulation for Luxar CLI - Technical Specification
    • Table of Contents
    • Overview
      • Goals
      • Non-Goals
      • ⚠️ Security Warning
    • Motivation
      • Problem Statement
      • Use Cases
    • Requirements
      • Functional Requirements
      • Non-Functional Requirements
      • Important: Viewer Command Semantics
    • Architecture
      • High-Level Design
      • Component Overview
    • Component Specifications
      • 1. Connection Profiles
      • 2. Parameter Parsing and Validation
        • Bandwidth Parser
        • Latency Parser
        • Jitter Parser
        • Packet Loss Parser
      • 3. NetworkSimulationMiddleware
        • Packet Loss Simulation
        • Latency Simulation (with Jitter)
        • Bandwidth Throttling
      • 4. Profile Loading Logic
    • CLI Interface
      • New CLI Options
      • Parameter Resolution Logic
      • Help Text Enhancement
    • Implementation Details
      • File Structure
      • Integration Points
      • Dependencies
    • Error Handling
      • Validation Errors
      • CLI Error Display
      • Runtime Errors
    • Testing Strategy
      • Unit Tests
      • Integration Tests
      • Manual Testing Checklist
    • Examples
      • Example 1: Test 3G Mobile Performance
      • Example 2: Test Satellite Connection
      • Example 3: Custom Worst-Case Scenario
      • Example 4: Test Only Latency
      • Example 5: Broadband Override
    • Future Extensions
      • 1. Per-Route Configuration
      • 2. Dynamic Parameter Adjustment
      • 3. Time-Based Variation
      • 4. Response Size-Based Rules
      • 5. Connection Type Detection
      • 6. Recording and Playback
      • 7. Statistics and Reporting
    • Implementation Checklist
    • Revision History
  • Error Handling Guide for Luxar
    • Overview
    • Core Principles
    • TypeScript Patterns
      • Pattern 1: Async Loaders (Return null on failure)
      • Pattern 2: Critical Operations (Throw on failure)
      • Pattern 3: User Input (Validate and throw with clear messages)
      • Pattern 4: Resource Cleanup (Try-finally)
    • Python Patterns
      • Pattern 1: Validation Functions (Raise with context)
      • Pattern 2: IO Operations (Chain exceptions with from e)
      • Pattern 3: Warnings for Non-Critical Issues
    • Common Mistakes to Avoid
      • ❌ Silent Failures
      • ❌ Generic Error Messages
      • ❌ Swallowing Exceptions
      • ❌ Inconsistent null/undefined Handling
    • When to Use Each Error Type
      • Python
      • TypeScript
    • Log Levels
    • Testing Error Handling
    • Updating Existing Code
      • Standardizing Existing Code
    • Summary
  • Debug Interface Guide
    • Overview
    • Enabling the Debug Interface
    • Available Properties and Methods
      • Base properties (from bootstrap.ts, available immediately)
      • Runtime components (from installDebugInterface(), available once runtimeReady is true)
      • Helper functions
        • Memory-ceiling fields on getState()
      • Cache helpers (__luxarDebug.cache)
    • Common Debug Workflows
      • Inspecting scene state
      • Checking cache performance
      • Forcing re-renders
      • Dumping state for bug reports
    • Using with Playwright (E2E Tests)
      • Waiting for initialization
      • Reading state from a test
      • Forcing a render for screenshots
      • Waiting for data to load
      • Direct page.evaluate access
    • Using with the Agent Debugger
    • Source Files
  • Intensity, Offset, and Gamma — Design Document
    • Status: Implemented
    • Problem
    • Proposed Architecture
      • Global Controls (vendored into tone mapping, zero extra cost)
      • Per-Node Controls (in shaders)
      • Use Case: Background Subtraction
      • Per-Node Interactive UI (Future)
    • Configuration Propagation
      • Global controls: Python → Zarr → Viewer → Post-Processing
      • Per-node controls: Python → Zarr → Viewer → Shaders
      • Python ViewerConfig example
    • UI Layout
    • Backward Compatibility
    • Implementation: Mega-shader Tone Mapping Stage
      • Why fuse EOG into the mega-shader
    • Current State
    • Implementation Locations
      • Python
      • TypeScript (shaders)
      • TypeScript (post-processing + scene management)
      • TypeScript (config + propagation)
      • TypeScript (UI)
      • TypeScript (node types)
  • Demo Site Runbook
    • 1. Architecture
      • 1.1 The viewer takes an absolute src
    • 2. Publishing a wave
      • 2.1 Always publish to a new dated prefix
      • 2.2 Hash-compare correctly, or not at all
      • 2.3 “Unchanged” and “never built” are different answers
      • 2.4 A demo may reuse a cached scene and still exit 0
      • 2.5 Rebuild against the commit you think you are on
    • 3. Hazards that fail silently
      • 3.1 Stale media (historical — and how the fix works now)
      • 3.2 A cache policy change does not reach cached objects
      • 3.3 curl -I misreports cache status
      • 3.4 Zarr v2 vs v3 — never name a metadata document
      • 3.5 Scale estimates: measure the affected, not the eligible
      • 3.6 R2 billing: 404s count
      • 3.7 ffmpeg: every encoder option must precede the output filename
      • 3.8 Judge a re-encode on frames, never on byte count
      • 3.9 Quality figures from before 2026-08-23 use the wrong basis
      • 3.10 One path, two generations: the closed Git-LFS migration hazard
        • The historical consequence worth retaining
      • 3.11 Flattening only cuts requests when archive topology reaches the scene
      • 3.12 Before flattening, compute the RESIDENT count — the total will mislead you
      • 3.13 A ladder’s counts are in different UNITS per geometry, and the wrong one writes zero rungs
      • 3.14 One viewport does not validate a substitutive ladder
      • 3.15 A streaming ladder’s first rung is first paint — size it in bytes, not chunks
      • 3.16 State the window before you read the number, and check it is longer than the phenomenon
        • The false observation
        • What is actually true
        • Why the number looked real
        • Why it survived so long
        • The rules
        • What genuinely survived
      • 3.17 Dropping substitutive LODs without re-chunking leaves the store far slower than it needs to be
      • 3.18 A probe must emit the evidence that its own window was valid
      • 3.19 Node reduction cuts requests only when arrays fit in one chunk
        • Measured: re-tiling codex_pancreas at a 4x coarser partition
        • Worked example: is a per-part ladder worth its nodes?
      • 3.20 A pin audit expires on the next upload, and local resolution can mask a bad hosted pin
        • Local resolution does not prove the hosted pin
        • An audit expires on the next write, not on a timer
        • The partial re-pin left one archive on its deliberate previous generation
      • 3.21 Animated, un-laddered nodes need chunk-boundary-aware prefetch
      • 3.22 Guard the artefact you ship, not only the inputs you fed it
    • 4. Cloudflare configuration
      • 4.1 Cache rule on the data subdomain
      • 4.2 Media cache safety
      • 4.3 CORS on the R2 bucket
      • 4.4 One hostname, one Pages project
    • 5. Verifying a wave
      • 5.1 Do not publish these
    • 6. Framing tiles
    • 7. Reading a scene’s LOD and partition structure
      • 7.1 Substitutive levels are alternatives; additive rungs are deltas
      • 7.2 shape=[0] means array_ref
      • 7.3 The BSP tree is bsp_tree, on the kind=partition wrapper
      • 7.4 Additive LOD refuses topology-changing indexed edges
      • 7.5 Compare like with like
    • 8. Current state, and what a fresh operator needs
      • 8.1 Where the site stands right now
        • 8.1.1 Stable per-demo routes — /d/<demo-key>
      • 8.2 noOrbitVideo — two tiles are deliberately static
      • 8.3 Build from the record archives — and verify provenance
      • 8.4 Environment traps on this machine
      • 8.5 What is in this repo, and what is not
      • 8.6 Minimum competent update
  • Why the manuscript benchmarks pin --floor none
    • The short version
    • Scientifically, floor suppression is the right thing
    • The measured −5.86 dB is a reference mismatch, not evidence floor is worse
    • Why keep no-floor for the paper anyway
    • The tool default is confirmed correct and stays
    • Resolution, without a GPU re-run
    • Deferred
  • Luxar Viewer Performance Audit (2026-09-04)
    • 1. Headline findings, ranked by impact
    • 2. Current state of the code (what exists)
      • 2.1 Fetch + cache
      • 2.2 Processing
      • 2.3 Orchestration
      • 2.4 Rendering
    • 3. Measurements
      • 3.1 Loading
      • 3.2 Steady-state frame rate (continuous render, probe-frames.mjs)
      • 3.3 Adaptive DPR behaviour observed (dense, console)
      • 3.4 Main-thread attribution on the large scene (cmu1, CDP trace + sampling profile)
      • 3.5 4-D playback (neuromast, probe-playback.mjs, step time dimension, --full waits for isLoading=false)
    • 4. Optimization opportunities, ranked
      • High impact
      • Medium impact
      • Lower impact / hygiene (verified in code, not measured)
    • 5. Hypotheses tested and rejected
    • 6. Observability gaps found while measuring
    • 7. What was measured with what
    • 8. Re-running
  • Render gate: exactness and performance, build against build
    • How a run works
    • Exactness
    • Performance
    • When a run is not a pass

Python API Reference:

  • Core Package
    • Scene
      • Scene
        • Scene.__init__()
        • Scene.citation
        • Scene.add_group()
        • Scene.get_store_path()
        • Scene.dimensions
        • Scene.viewer_config
        • Scene.overlays
        • Scene.add_text()
        • Scene.add_image()
        • Scene.add_video()
        • Scene.add_html()
        • Scene.to_zarr()
    • Node
      • Node
        • Node.__init__()
        • Node.attrs
        • Node.add_group()
        • Node.add_lod_group()
        • Node.add_partition_group()
        • Node.walk()
        • Node.transform
        • Node.world_transform
        • Node.nd_transform
        • Node.world_nd_transform
        • Node.num_children
        • Node.is_leaf
        • Node.is_root
        • Node.layer
        • Node.visible
        • Node.opacity
        • Node.absorption
        • Node.gamma
        • Node.intensity
        • Node.offset
        • Node.blending_mode
        • Node.join
        • Node.set_opacity()
        • Node.set_absorption()
        • Node.set_gamma()
        • Node.set_intensity()
        • Node.set_offset()
        • Node.set_blending_mode()
        • Node.set_join()
        • Node.colormap
        • Node.set_colormap()
        • Node.__eq__()
        • Node.__hash__()
        • Node.__repr__()
    • Group
      • Group
        • Group.add_points()
        • Group.add_lines()
        • Group.add_sound()
        • Group.add_mesh()
        • Group.add_gsplats()
        • Group.add_gsplats_from_data()
        • Group.add_gsplats_from_file()
        • Group.add_gsplats_from_volume()
    • Points
      • Points
        • Points.__init__()
        • Points.n_elements
        • Points.has_colors
        • Points.has_radii
        • Points.has_sharpness
        • Points.has_scalars
        • Points.has_labels
        • Points.has_image_labels
        • Points.has_keys
        • Points.max_radius
        • Points.has_spatial_index
        • Points.ordering
        • Points.join
    • Lines
      • Lines
        • Lines.__init__()
        • Lines.n_elements
        • Lines.n_segments
        • Lines.line_type
        • Lines.has_colors
        • Lines.has_sharpness
        • Lines.has_scalars
        • Lines.has_labels
        • Lines.has_image_labels
        • Lines.has_keys
        • Lines.max_width
        • Lines.has_spatial_index
        • Lines.ordering
    • GSplats
      • GSplats
        • GSplats.__init__()
        • GSplats.n_elements
        • GSplats.has_colors
        • GSplats.has_labels
        • GSplats.has_image_labels
        • GSplats.has_keys
        • GSplats.ordering
        • GSplats.amplitude_range
        • GSplats.center_bounds
        • GSplats.join
    • Mesh
      • Mesh
        • Mesh.__init__()
        • Mesh.n_elements
        • Mesh.n_faces
        • Mesh.has_normals
        • Mesh.normal_dims
        • Mesh.has_colors
        • Mesh.has_scalars
        • Mesh.has_labels
        • Mesh.has_image_labels
        • Mesh.has_keys
        • Mesh.shading
        • Mesh.double_sided
        • Mesh.blending_mode
        • Mesh.join
        • Mesh.ordering
    • Sound
      • Sound
        • Sound.__init__()
        • Sound.n_elements
        • Sound.n_positions
        • Sound.spatial
        • Sound.trigger
        • Sound.bus
        • Sound.attach_to
        • Sound.format
        • Sound.audio_file
        • Sound.duration_ms
    • Dimensions
      • Dimensions
        • Dimensions.dimensions
        • Dimensions.__post_init__()
        • Dimensions.ndim
        • Dimensions.__len__()
        • Dimensions.names
        • Dimensions.displayed
        • Dimensions.non_displayed
        • Dimensions.spatial_extend_dims
        • Dimensions.get_dimension()
        • Dimensions.get_index()
        • Dimensions.validate_positions()
        • Dimensions.to_dict()
        • Dimensions.from_dict()
        • Dimensions.default_2d()
        • Dimensions.default_3d()
        • Dimensions.default_timeseries()
        • Dimensions.default_multichannel()
        • Dimensions.from_positions()
        • Dimensions.__init__()
      • Dimension
        • Dimension.name
        • Dimension.unit
        • Dimension.range
        • Dimension.step
        • Dimension.display
        • Dimension.discrete
        • Dimension.cyclic
        • Dimension.scale
        • Dimension.spatial
        • Dimension.categories
        • Dimension.description
        • Dimension.__post_init__()
        • Dimension.get_step()
        • Dimension.is_categorical
        • Dimension.to_dict()
        • Dimension.from_dict()
        • Dimension.__init__()
    • Transforms
      • identity()
      • translate()
      • scale()
      • rotate_x()
      • rotate_y()
      • rotate_z()
      • rotate()
      • compose()
      • inverse()
      • look_at()
      • to_list()
      • from_list()
      • prepare_transform_for_zarr()
      • read_transform_from_zarr()
      • transform_bounding_box()
      • translation()
      • scaling()
      • rotation()
  • Control Package
    • ControlError
      • ControlError.__init__()
      • ControlError.no_viewer_attached
    • Viewer
      • Viewer.__init__()
      • Viewer.close()
      • Viewer.call()
      • Viewer.notify()
      • Viewer.recv_event()
      • Viewer.get_viewer_state()
      • Viewer.get_dimensions()
      • Viewer.set_dimension_value()
      • Viewer.dimension_index()
      • Viewer.get_camera_pose()
      • Viewer.fly_to()
      • Viewer.recenter_camera()
      • Viewer.subscribe()
      • Viewer.unsubscribe()
  • Environment Package
    • AttachReport
      • AttachReport.store
      • AttachReport.status
      • AttachReport.array_name
      • AttachReport.digest
      • AttachReport.scene_content_hash
      • AttachReport.resolution
      • AttachReport.removed
      • AttachReport.__init__()
    • attach_environment()
    • pack()
    • unpack()
    • See Also
  • Mesh Package
    • Importing Classical Mesh Files
      • TriangleMesh
        • TriangleMesh.vertices
        • TriangleMesh.faces
        • TriangleMesh.normals
        • TriangleMesh.colors
        • TriangleMesh.source_format
        • TriangleMesh.dimension_names
        • TriangleMesh.n_vertices
        • TriangleMesh.n_faces
        • TriangleMesh.__init__()
      • compile_index_regex()
      • detect_mesh_format()
      • import_mesh()
      • import_mesh_directory()
    • Decimation (substitutive LOD)
      • DecimatedMesh
        • DecimatedMesh.vertices
        • DecimatedMesh.faces
        • DecimatedMesh.normals
        • DecimatedMesh.colors
        • DecimatedMesh.scalars
        • DecimatedMesh.geometric_error
      • decimate()
      • decimate_cluster()
      • decimate_ladder()
      • resolve_decimation_method()
      • decimate_qem()
      • decimate_qem_ladder()
    • Splitting by Faces
      • MeshPart
        • MeshPart.faces
        • MeshPart.vertex_index
        • MeshPart.face_index
        • MeshPart.__init__()
      • face_centroids()
      • split_mesh_by_faces()
      • duplication_factor()
    • See Also
  • Shading Package
    • Quick start
    • Occlusion
      • Emissivity as a function of ambient illumination
      • Why this belongs at authoring time
      • Method
      • bake_ambient_occlusion()
      • directional_optical_depth()
      • sphere_directions()
    • See Also
  • I/O Package
    • Overview
      • ElementCapacityWarning
    • LuxarZarrCompiler
      • LuxarZarrCompiler
        • LuxarZarrCompiler.__init__()
        • LuxarZarrCompiler.__enter__()
        • LuxarZarrCompiler.__exit__()
        • LuxarZarrCompiler.create_scene()
        • LuxarZarrCompiler.write_group()
        • LuxarZarrCompiler.delete_group_attr()
        • LuxarZarrCompiler.node_exists()
        • LuxarZarrCompiler.delete_node()
        • LuxarZarrCompiler.snapshot_rollback_state()
        • LuxarZarrCompiler.restore_rollback_state()
        • LuxarZarrCompiler.transaction()
        • LuxarZarrCompiler.write_points()
        • LuxarZarrCompiler.write_lines()
        • LuxarZarrCompiler.write_mesh()
        • LuxarZarrCompiler.write_sound()
        • LuxarZarrCompiler.write_points_multi_lod()
        • LuxarZarrCompiler.write_lines_multi_lod()
        • LuxarZarrCompiler.write_mesh_multi_lod()
        • LuxarZarrCompiler.write_gsplats()
        • LuxarZarrCompiler.write_gsplat_leaf_subtree()
        • LuxarZarrCompiler.create_resizable_dataset()
        • LuxarZarrCompiler.finalize()
        • LuxarZarrCompiler.store_path
        • LuxarZarrCompiler.final_store_path
      • Key Features
    • LuxarScene
      • LuxarScene
        • LuxarScene.__init__()
        • LuxarScene.load()
        • LuxarScene.path
        • LuxarScene.version
        • LuxarScene.root_attrs
        • LuxarScene.dimensions
        • LuxarScene.viewer_config
        • LuxarScene.nodes
        • LuxarScene.list_points()
        • LuxarScene.list_gsplats()
        • LuxarScene.list_lines()
        • LuxarScene.list_meshes()
        • LuxarScene.list_sounds()
        • LuxarScene.list_groups()
        • LuxarScene.has_node()
        • LuxarScene.get_node_type()
        • LuxarScene.get_node_metadata()
        • LuxarScene.get_colormap_lut()
        • LuxarScene.get_group()
        • LuxarScene.get_points()
        • LuxarScene.get_point_array()
        • LuxarScene.get_gsplats()
        • LuxarScene.get_lines()
        • LuxarScene.get_mesh()
      • Key Features
    • Spatial Ordering
      • morton_encode_nd()
      • morton_encode_128bit()
      • hilbert_encode_nd()
      • normalize_coords_to_grid()
      • compute_auto_resolution()
      • detect_barrier_dims()
      • sort_points_compound()
      • sort_splats_spatial()
      • compute_chunk_bounds_points()
      • compute_chunk_bounds_gsplats()
      • convert_to_indexed()
      • sort_segments_compound()
      • order_lines_spatial()
      • compute_vertex_chunk_bounds()
      • compute_segment_chunk_bounds()
      • Morton and Hilbert Curves
    • Writer Protocol
      • ZarrWriterProtocol
        • ZarrWriterProtocol.store
        • ZarrWriterProtocol.write_group()
        • ZarrWriterProtocol.write_points()
        • ZarrWriterProtocol.write_lines()
        • ZarrWriterProtocol.write_mesh()
        • ZarrWriterProtocol.write_gsplats()
        • ZarrWriterProtocol.write_points_multi_lod()
        • ZarrWriterProtocol.write_lines_multi_lod()
        • ZarrWriterProtocol.write_sound()
        • ZarrWriterProtocol.write_mesh_multi_lod()
        • ZarrWriterProtocol.create_resizable_dataset()
        • ZarrWriterProtocol.delete_group_attr()
        • ZarrWriterProtocol.node_exists()
        • ZarrWriterProtocol.delete_node()
        • ZarrWriterProtocol.snapshot_rollback_state()
        • ZarrWriterProtocol.restore_rollback_state()
        • ZarrWriterProtocol.transaction()
        • ZarrWriterProtocol.finalize()
        • ZarrWriterProtocol.store_path
        • ZarrWriterProtocol.final_store_path
        • ZarrWriterProtocol.__init__()
    • Volume Loading
      • load_volume()
    • OME-Zarr Discovery
      • discover_ome_zarr_shape()
      • resolve_ngff_attrs()
      • ngff_scale_transform()
      • OMEZarrInfo
        • OMEZarrInfo.axes
        • OMEZarrInfo.shape
        • OMEZarrInfo.n_timepoints
        • OMEZarrInfo.n_channels
        • OMEZarrInfo.channel_axes
        • OMEZarrInfo.channel_shape
        • OMEZarrInfo.spatial_shape
        • OMEZarrInfo.spatial_axes
        • OMEZarrInfo.time_axis
        • OMEZarrInfo.channel_indices
        • OMEZarrInfo.spatial_indices
        • OMEZarrInfo.axis_units
        • OMEZarrInfo.axis_scales
        • OMEZarrInfo.voxel_size
        • OMEZarrInfo.unit
        • OMEZarrInfo.resolution_levels
        • OMEZarrInfo.path
        • OMEZarrInfo.__post_init__()
        • OMEZarrInfo.__init__()
    • Chunk-Layout Optimization
      • What is preserved, exactly
      • The spatial-index contract
      • The cache-invalidation hazard
      • optimize_store()
      • plan_optimization()
      • summarize_chunk_layout()
      • summarize_plan()
      • resolve_target_bytes()
      • CHUNK_PROFILES
      • OptimizePlan
        • OptimizePlan.target_bytes
        • OptimizePlan.profile
        • OptimizePlan.arrays
        • OptimizePlan.playback_warnings
        • OptimizePlan.n_rechunked
        • OptimizePlan.source_n_chunks
        • OptimizePlan.target_n_chunks
        • OptimizePlan.__init__()
      • ArrayPlan
        • ArrayPlan.path
        • ArrayPlan.shape
        • ArrayPlan.dtype
        • ArrayPlan.itemsize
        • ArrayPlan.source_chunks
        • ArrayPlan.target_chunks
        • ArrayPlan.source_n_chunks
        • ArrayPlan.target_n_chunks
        • ArrayPlan.atom
        • ArrayPlan.source_file_grid
        • ArrayPlan.skip_reason
        • ArrayPlan.rechunked
        • ArrayPlan.target_chunk_bytes
        • ArrayPlan.source_file_bytes
        • ArrayPlan.__init__()
      • ChunkLayoutSummary
        • ChunkLayoutSummary.n_arrays
        • ChunkLayoutSummary.n_chunks
        • ChunkLayoutSummary.mean_chunk_bytes
        • ChunkLayoutSummary.n_arrays_under_floor
        • ChunkLayoutSummary.share_under_floor
        • ChunkLayoutSummary.__init__()
  • Encoding Package
    • ArrayEncoder
      • ArrayEncoder
        • ArrayEncoder.__init__()
        • ArrayEncoder.encode()
        • ArrayEncoder.encodes_as_lut()
        • ArrayEncoder.reset()
        • ArrayEncoder.snapshot()
        • ArrayEncoder.restore()
    • Semantic Types
      • SemanticType
        • SemanticType.COORDINATE
        • SemanticType.COLOR
        • SemanticType.BOUNDED_SCALAR
        • SemanticType.POSITIVE_SCALAR
        • SemanticType.CHOLESKY
        • SemanticType.CHOLESKY_DIAG
        • SemanticType.CHOLESKY_OFFDIAG
        • SemanticType.INDEX
    • Encoding Modes
      • EncodingMode
        • EncodingMode.AUTO
        • EncodingMode.PRECISION
        • EncodingMode.MEMORY
        • EncodingMode.CUSTOM
    • Coordinate Grid Snap
      • gridded_axis_step()
      • COORDINATE_LEVELS
  • Validation Package
    • ValidationError
      • ValidationError.__init__()
    • DimensionalCoverageError
      • DimensionalCoverageError.__init__()
    • validate_cholesky_for_writing()
    • validate_colors_for_writing()
    • validate_labels_for_writing()
    • validate_node_name()
    • validate_positions_for_writing()
    • validate_radii_for_writing()
    • validate_sharpness_for_writing()
    • validate_widths_for_writing()
    • validate_zarr_attributes()
    • validate_positions()
    • validate_colors()
    • validate_radii()
    • validate_sharpness()
    • validate_transform()
    • validate_node_type()
    • validate_physical_unit()
    • validate_opacity()
    • validate_truncation_radius()
    • validate_gamma()
    • validate_absorption()
    • validate_blending_mode()
    • validate_layer_order()
    • validate_line_join()
    • validate_categories()
    • validate_category_indices()
    • is_position_array()
    • is_color_array()
    • is_transform_matrix()
    • broadcast_to_all_slices()
    • validate_dimensional_coverage()
    • Type Validation
      • validate_positions()
      • validate_colors()
      • validate_radii()
      • validate_sharpness()
      • validate_transform()
      • validate_node_type()
      • validate_physical_unit()
      • validate_opacity()
      • validate_appearance_fraction()
      • validate_positive_finite()
      • TEXTURE_FILTERS
      • TEXTURE_WRAPS
      • TEXTURE_COLOR_SPACES
      • validate_texture_filter()
      • validate_texture_wrap()
      • validate_texture_color_space()
      • MESH_MATERIALS
      • PHYSICAL_MATERIAL_FRACTION_ATTRS
      • PHYSICAL_TRANSMISSION_ATTRS
      • PHYSICAL_TRANSMISSION_DEPENDENT_ATTRS
      • PHYSICAL_MATERIAL_ATTRS
      • IOR_MIN
      • HOUSE_SHADER_ONLY_ATTRS
      • validate_mesh_material()
      • validate_ior()
      • validate_non_negative_finite()
      • validate_hex_color()
      • validate_absorption()
      • MIN_TRUNCATION_RADIUS_FLOAT32
      • MAX_TRUNCATION_RADIUS_FLOAT32
      • validate_truncation_radius()
      • validate_gamma()
      • validate_intensity()
      • validate_offset()
      • validate_layer()
      • validate_bool_flag()
      • validate_link()
      • validate_copy_template()
      • validate_link_target()
      • validate_visible()
      • validate_blending_mode()
      • validate_layer_order()
      • validate_line_join()
      • validate_colormap()
      • validate_finite_reveal_coords()
      • validate_integral_axis_indices()
      • is_position_array()
      • is_color_array()
      • is_transform_matrix()
      • validate_category_indices()
    • Write Validation
      • ValidationError
        • ValidationError.__init__()
      • validate_node_name()
      • validate_labels_for_writing()
      • validate_color_dtype()
      • validate_positions_for_writing()
      • validate_colors_for_writing()
      • validate_radii_for_writing()
      • validate_widths_for_writing()
      • validate_cholesky_for_writing()
      • validate_sharpness_for_writing()
      • validate_vertices_for_writing()
      • mesh_decoded_value_count()
      • validate_mesh_ladder_decode_budget()
      • validate_mesh_decode_budget()
      • validate_faces_for_writing()
      • validate_normals_for_writing()
      • validate_normal_dims_for_writing()
      • TEXTURE_ENCODINGS
      • MAX_MESH_TEXTURE_SIZE
      • MESH_TEXTURE_DECODE_BUDGET_BYTES
      • validate_uvs_for_writing()
      • validate_texture_for_writing()
      • validate_zarr_attributes()
    • nD Validation
      • DimensionalCoverageError
        • DimensionalCoverageError.__init__()
      • validate_dimensional_coverage()
      • broadcast_to_all_slices()
    • Category Validation
      • validate_categories()
  • Demos Package
    • BundleMemberNotFound
    • DatasetNotFound
    • DatasetUnavailable
    • DependencySpec
      • DependencySpec.spec
      • DependencySpec.extra
      • DependencySpec.note
    • DependencyStatus
      • DependencyStatus.module
      • DependencyStatus.spec
      • DependencyStatus.installed
      • DependencyStatus.satisfied
    • LocalComputeDataset
      • LocalComputeDataset.__init__()
    • MissingDependencyError
    • ResolvedDataset
      • ResolvedDataset.__init__()
    • add_demo_caption()
    • add_reference_cube_to_scene()
    • cache_computed()
    • cached_download()
    • create_lorenz_attractor()
    • create_random_spheres()
    • create_time_series_demo()
    • cubic_bounds()
    • dataset_spec()
    • declared_file_names()
    • demo_source_fingerprint()
    • detect_device()
    • download_with_checksum()
    • download_zip_member()
    • ensure_dataset()
    • extras_for()
    • find_quarantined_files()
    • format_demo_caption()
    • format_quarantine_notice()
    • hsv_to_rgb()
    • is_installed()
    • is_lfs_pointer()
    • control_serve_args()
    • bake_scene_environment()
    • launch_viewer()
    • load_dataset_bundle()
    • load_dataset_gsplats()
    • load_local_fit_gsplats()
    • load_local_fit_gsplats_at()
    • load_manifest()
    • load_precomputed_bundle()
    • load_precomputed_gsplats()
    • local_fit_path()
    • parse_demo_flags()
    • parse_int_arg()
    • parse_path_arg()
    • parse_str_arg()
    • print_data_provenance()
    • quarantine_file()
    • require_local_data()
    • require_module()
    • rk4_step()
    • robust_download()
    • run_luxar_cli()
    • scene_is_current()
    • stack_colorings()
    • stamp_input_digests()
    • substitutive_lod_or_flat()
    • survey()
    • trilinear_vector()
    • unit_flow()
    • voxel_sampled_payload_agreement()
    • warn_if_no_cuda_gpu()
    • warn_if_quarantined()
    • window_attrs()
    • FlowField
      • FlowField.vectors
      • FlowField.grid_min
      • FlowField.grid_max
      • FlowField.spacing
      • FlowField.cache_key
      • FlowField.__init__()
  • Utils Package
    • arbol_warnings()
    • install_arbol_warnings()
    • ensure_float32()
    • validate_array_shape()
    • atomic_copy_file()
    • atomic_copytree()
    • deprecated_kwarg_alias()
    • deprecation_message()
    • warn_deprecated()
    • create_lorenz_attractor()
    • create_random_spheres()
    • create_time_series_demo()
    • get_datasets_dir()
    • get_demos_output_dir()
    • get_examples_output_dir()
    • get_project_root()
    • Array Utilities
      • ensure_float32()
      • validate_array_shape()
    • Reusable Demo Generators
      • hsv_to_rgb()
      • StackedColorings
        • StackedColorings.positions
        • StackedColorings.colors
        • StackedColorings.labels
        • StackedColorings.categories
        • StackedColorings.keys
      • stack_colorings()
      • create_lorenz_attractor()
      • create_random_spheres()
      • create_time_series_demo()
    • Deprecation Notices
      • deprecated_kwarg_alias()
      • deprecation_message()
      • warn_deprecated()
    • Console Output
      • get_verbosity()
      • set_verbosity()
      • verbosity()
  • Typing Utils Package
    • DimensionIndex
    • NodePath
    • CompressorProtocol
      • CompressorProtocol.encode()
      • CompressorProtocol.decode()
      • CompressorProtocol.__init__()
    • NodeProtocol
      • NodeProtocol.name
      • NodeProtocol.children
      • NodeProtocol.parent
      • NodeProtocol.attrs
      • NodeProtocol.add_group()
      • NodeProtocol.walk()
      • NodeProtocol.__init__()
    • is_color_array()
    • is_position_array()
    • is_transform_matrix()
    • validate_blending_mode()
    • validate_colors()
    • validate_gamma()
    • validate_node_type()
    • validate_opacity()
    • validate_physical_unit()
    • validate_positions()
    • validate_radii()
    • validate_sharpness()
    • validate_transform()
    • BlendingMode
      • BlendingMode.NORMAL
      • BlendingMode.ADDITIVE
      • BlendingMode.MAX
      • BlendingMode.OPAQUE
      • BlendingMode.LUMINOUS
      • BlendingMode.VOLUMETRIC
    • NodeType
      • NodeType.SCENE
      • NodeType.GROUP
      • NodeType.POINTS
      • NodeType.LINES
      • NodeType.GSPLATS
      • NodeType.MESH
      • NodeType.SOUND
      • NodeType.validate()
    • PhysicalUnit
      • PhysicalUnit.NANOMETER
      • PhysicalUnit.MICROMETER
      • PhysicalUnit.MILLIMETER
      • PhysicalUnit.CENTIMETER
      • PhysicalUnit.METER
      • PhysicalUnit.METRE
      • PhysicalUnit.KILOMETER
      • PhysicalUnit.INCH
      • PhysicalUnit.FOOT
      • PhysicalUnit.PIXEL
      • PhysicalUnit.SECOND
      • PhysicalUnit.ASTRONOMICAL_UNIT
      • PhysicalUnit.validate()
    • Defaults
      • Defaults.OPACITY
      • Defaults.GAMMA
      • Defaults.ABSORPTION
      • Defaults.SHARPNESS
      • Defaults.CHUNK_SIZE
      • Defaults.RADIUS
      • Defaults.COLOR_WHITE
      • Defaults.COLOR_BLACK
    • RenderingLimits
      • RenderingLimits.OPACITY_MIN
      • RenderingLimits.OPACITY_MAX
      • RenderingLimits.ABSORPTION_MIN
      • RenderingLimits.GAMMA_MIN
      • RenderingLimits.GAMMA_MAX
      • RenderingLimits.SHARPNESS_MIN
      • RenderingLimits.SHARPNESS_MAX
      • RenderingLimits.COLOR_SDR_MIN
      • RenderingLimits.COLOR_SDR_MAX
      • RenderingLimits.COLOR_HDR_MAX
    • Type Aliases
    • Constants
      • DEFAULT_POINT_RADIUS
      • DEFAULT_TRUNCATION_RADIUS
      • DEFAULT_SIGMA_MIN_DIAG
      • ELEMENT_TEXELS_PER_ELEMENT
      • max_elements_per_node()
      • MAX_SEGMENTS_PER_LINES_NODE
      • MAX_POINTS_PER_POINTS_NODE
      • MAX_SPLATS_PER_GSPLATS_NODE
      • JS_SAFE_INTEGER_MAX
    • Enums
      • BlendingMode
        • BlendingMode.NORMAL
        • BlendingMode.ADDITIVE
        • BlendingMode.MAX
        • BlendingMode.OPAQUE
        • BlendingMode.LUMINOUS
        • BlendingMode.VOLUMETRIC
      • NodeType
        • NodeType.SCENE
        • NodeType.GROUP
        • NodeType.POINTS
        • NodeType.LINES
        • NodeType.GSPLATS
        • NodeType.MESH
        • NodeType.SOUND
        • NodeType.validate()
      • PhysicalUnit
        • PhysicalUnit.NANOMETER
        • PhysicalUnit.MICROMETER
        • PhysicalUnit.MILLIMETER
        • PhysicalUnit.CENTIMETER
        • PhysicalUnit.METER
        • PhysicalUnit.METRE
        • PhysicalUnit.KILOMETER
        • PhysicalUnit.INCH
        • PhysicalUnit.FOOT
        • PhysicalUnit.PIXEL
        • PhysicalUnit.SECOND
        • PhysicalUnit.ASTRONOMICAL_UNIT
        • PhysicalUnit.validate()
      • RenderingLimits
        • RenderingLimits.OPACITY_MIN
        • RenderingLimits.OPACITY_MAX
        • RenderingLimits.ABSORPTION_MIN
        • RenderingLimits.GAMMA_MIN
        • RenderingLimits.GAMMA_MAX
        • RenderingLimits.SHARPNESS_MIN
        • RenderingLimits.SHARPNESS_MAX
        • RenderingLimits.COLOR_SDR_MIN
        • RenderingLimits.COLOR_SDR_MAX
        • RenderingLimits.COLOR_HDR_MAX
      • Defaults
        • Defaults.OPACITY
        • Defaults.GAMMA
        • Defaults.ABSORPTION
        • Defaults.SHARPNESS
        • Defaults.CHUNK_SIZE
        • Defaults.RADIUS
        • Defaults.COLOR_WHITE
        • Defaults.COLOR_BLACK
  • CLI Package
    • Main Application
      • Key Functions
        • create_server_app()
    • Serving
      • DirectoryListingStaticFiles
        • DirectoryListingStaticFiles.__call__()
        • DirectoryListingStaticFiles.get_response()
      • create_server_app()
      • ServedStore
        • ServedStore.__init__()
        • ServedStore.data_url
        • ServedStore.viewer_url
      • served_store()
    • Utilities
      • deprecated_option()
      • primary_lan_address()
      • advertised_host()
      • origin_hostname()
      • authority_hostname()
      • origin_authority()
      • open_browser()
      • check_port_available()
      • find_available_port()
      • pick_port()
      • dataset_title()
      • append_title_param()
      • wait_for_server()
      • check_viewer_built()
      • get_viewer_dist_path()
      • exit_code_from()
      • ensure_viewer_built()
      • build_viewer()
      • format_tree_node()
      • format_memory_size()
      • get_zarr_info()
      • validate_zarr_store()
    • Network Simulation
      • NetworkProfile
        • NetworkProfile.name
        • NetworkProfile.bandwidth
        • NetworkProfile.latency
        • NetworkProfile.jitter
        • NetworkProfile.packet_loss
        • NetworkProfile.description
      • parse_bandwidth()
      • parse_latency()
      • parse_jitter()
      • parse_packet_loss()
      • parse_network_options()
      • has_network_simulation()
      • print_network_params()
      • load_network_profile()
      • NetworkSimulationMiddleware
        • NetworkSimulationMiddleware.__init__()
        • NetworkSimulationMiddleware.__call__()
      • Network Profiles
    • Export
      • export_scene()
      • SceneFacts
        • SceneFacts.title
        • SceneFacts.has_control_panel
        • SceneFacts.chapter_dimension
        • SceneFacts.chapter_count
        • SceneFacts.panel_tiles
        • SceneFacts.dimensions
        • SceneFacts.displayed
        • SceneFacts.citation
        • SceneFacts.stops
        • SceneFacts.__init__()
      • read_scene_facts()
      • THIRD_PARTY_LICENSES
      • SERVE_TEMPLATE
      • QR_MODULE_SOURCE
    • Native Bundles
      • validate_bundle_name()
      • LauncherNotBuiltError
      • get_launcher_path()
      • bundle_macos_app()
      • bundle_linux_folder()
      • zip_macos_app()
    • Mesh Commands
      • Mesh Operations
        • register_import_commands()
        • register_lod_commands()
    • GSplat Commands
      • GSplat Configuration
        • OMEZarrInfo
        • build_dimensions_from_data()
        • decode_flat_channel_index()
        • discover_ome_zarr_shape()
        • dump_default_config()
        • get_fit_defaults()
        • load_fit_config()
        • load_volume()
        • parse_hex_color()
        • parse_seeds()
        • parse_shape()
        • FitPreset
      • GSplat Operations
      • LOD Command
        • lod_recipe()
        • register_lod_command()
    • Info Command
      • register_info_command()
      • HTTP1_RTT_BOUND_CHUNK_BYTES
    • Optimize Command
      • register_optimize_command()
  • Gaussian Splatting Package
    • Main API
      • fit_gaussian_splats()
      • fit_progressive_gaussian_splats()
      • GSplatData
        • GSplatData.additive_sublods
        • GSplatData.centers
        • GSplatData.amplitudes
        • GSplatData.cholesky_factors
        • GSplatData.colors
        • GSplatData.label_ids
        • GSplatData.label_vocabulary
        • GSplatData.stats
        • GSplatData.__init__()
        • GSplatData.__len__()
        • GSplatData.additive_prefix()
        • GSplatData.additive_sublod()
        • GSplatData.affine_intensity()
        • GSplatData.at_substitutive()
        • GSplatData.center_at_centroid()
        • GSplatData.clamp_intensity()
        • GSplatData.combine_as_new_dimension()
        • GSplatData.concatenate()
        • GSplatData.cull()
        • GSplatData.default_substitutive
        • GSplatData.eccentricities()
        • GSplatData.embed_dimension()
        • GSplatData.filter()
        • GSplatData.filter_by()
        • GSplatData.flattened()
        • GSplatData.from_additive_sublods()
        • GSplatData.from_default_selection()
        • GSplatData.from_substitutive_levels()
        • GSplatData.from_tree()
        • GSplatData.load()
        • GSplatData.lod_psnrs()
        • GSplatData.marginal_sigmas()
        • GSplatData.masses()
        • GSplatData.merge_with_channel_colors()
        • GSplatData.n_additive_sublods
        • GSplatData.n_splats
        • GSplatData.n_substitutive
        • GSplatData.ndim
        • GSplatData.nearest_neighbor_distances()
        • GSplatData.neighbor_counts()
        • GSplatData.normalize_intensity()
        • GSplatData.partition_from_regions()
        • GSplatData.principal_radii()
        • GSplatData.render_to_volume()
        • GSplatData.reweight_amplitude()
        • GSplatData.save()
        • GSplatData.scale()
        • GSplatData.scale_intensity()
        • GSplatData.slice_by()
        • GSplatData.soft_scale_filter()
        • GSplatData.substitutive_levels
        • GSplatData.to_spatial_partition()
        • GSplatData.transform()
        • GSplatData.translate()
        • GSplatData.tree
        • GSplatData.volumes()
        • GSplatData.with_colors()
        • GSplatData.with_label_ids()
        • GSplatData.without_label_ids()
        • GSplatData.truncation_radius
        • GSplatData.__repr__()
    • Tiled Fitting
      • fit_tiled_gaussian_splats()
      • fit_tile()
      • fit_tiled()
      • announce_unscored_merge()
      • collect_part_provenance()
      • resolve_merged_reference()
      • stamp_merged_quality()
      • summarize_part_provenance()
      • TileSpec
        • TileSpec.index
        • TileSpec.grid_index
        • TileSpec.slices
        • TileSpec.origin
        • TileSpec.shape
        • TileSpec.border_low
        • TileSpec.border_high
        • TileSpec.overlap_low
        • TileSpec.overlap_high
        • TileSpec.__init__()
      • compute_tile_specs()
      • resolve_grid_scale()
      • grid_bsp_tree()
      • cosine_window()
    • Lifting Points and Lines to Splats
      • lift_points_to_gsplats()
      • lift_lines_to_gsplats()
    • Fitting Pipeline
      • FitConfig
        • FitConfig.V
        • FitConfig.seeds
        • FitConfig.norm_percentile
        • FitConfig.init_sigma_vox
        • FitConfig.sigma_min_diag
        • FitConfig.sigma_max_diag
        • FitConfig.truncate
        • FitConfig.n_iters
        • FitConfig.lr
        • FitConfig.max_abs_error
        • FitConfig.rel_l2_target
        • FitConfig.gradient_clip
        • FitConfig.loss_type
        • FitConfig.asymmetric_penalty
        • FitConfig.l1_amp
        • FitConfig.l1_diag
        • FitConfig.scheduler_type
        • FitConfig.patience
        • FitConfig.lr_reduction_factor
        • FitConfig.early_stop_patience
        • FitConfig.enable_dynamic_ops
        • FitConfig.dynamic_config
        • FitConfig.dynamic_ops_verbose
        • FitConfig.napari_movie
        • FitConfig.movie_every
        • FitConfig.movie_max_frames
        • FitConfig.device
        • FitConfig.verbose
        • FitConfig.floor
        • FitConfig.norm_range
        • FitConfig.use_metal
        • FitConfig.metal_intensity_floor
        • FitConfig.use_cuda
        • FitConfig.cuda_intensity_floor
        • FitConfig.seed_method
        • FitConfig.seed_kwargs
        • FitConfig.seed_amps_background_relative
        • FitConfig.init_L
        • FitConfig.init_amps
        • FitConfig.amp_max
        • FitConfig.max_eccentricity
        • FitConfig.voxel_footprint_correction
        • FitConfig.clip_to_bounds
        • FitConfig.voxel_size
        • FitConfig.output_space
        • FitConfig.boundary_penalty
        • FitConfig.sort_splats_enabled
        • FitConfig.sort_splats_interval
        • FitConfig.downscale
        • FitConfig.iter_callback
        • FitConfig.iter_callback_every
        • FitConfig.source_dtype
        • FitConfig.source_itemsize
        • FitConfig.source_shape
        • FitConfig.source_stored_bytes
        • FitConfig.__init__()
      • FitParameters
        • FitParameters.V
        • FitParameters.seeds
        • FitParameters.norm_percentile
        • FitParameters.floor
        • FitParameters.norm_range
        • FitParameters.downscale
        • FitParameters.init_sigma_vox
        • FitParameters.n_iters
        • FitParameters.lr
        • FitParameters.loss_type
        • FitParameters.asymmetric_penalty
        • FitParameters.l1_amp
        • FitParameters.l1_diag
        • FitParameters.sigma_min_diag
        • FitParameters.sigma_max_diag
        • FitParameters.amp_max
        • FitParameters.max_eccentricity
        • FitParameters.truncate
        • FitParameters.seed_method
        • FitParameters.verbose
        • FitParameters.max_abs_error
        • FitParameters.rel_l2_target
        • FitParameters.gradient_clip
        • FitParameters.napari_movie
        • FitParameters.movie_every
        • FitParameters.movie_max_frames
        • FitParameters.scheduler_type
        • FitParameters.patience
        • FitParameters.lr_reduction_factor
        • FitParameters.early_stop_patience
        • FitParameters.dynamic_ops_verbose
        • FitParameters.voxel_footprint_correction
        • FitParameters.boundary_penalty
        • FitParameters.clip_to_bounds
        • FitParameters.voxel_size
        • FitParameters.output_space
        • FitParameters.sort_splats_enabled
        • FitParameters.sort_splats_interval
        • FitParameters.iter_callback
        • FitParameters.iter_callback_every
        • FitParameters.seed_amps_background_relative
        • FitParameters.source_dtype
        • FitParameters.source_shape
        • FitParameters.source_stored_bytes
        • FitParameters.seed_kwargs
        • FitParameters.__init__()
      • PreprocessedData
        • PreprocessedData.V_normalized
        • PreprocessedData.V_tensor
        • PreprocessedData.seed_centers
        • PreprocessedData.image_min
        • PreprocessedData.image_max
        • PreprocessedData.intensity_range
        • PreprocessedData.d
        • PreprocessedData.N
        • PreprocessedData.max_abs_error
        • PreprocessedData.rel_l2_target
        • PreprocessedData.floor
        • PreprocessedData.floor_strategy
        • PreprocessedData.l1_amp
        • PreprocessedData.l1_diag
        • PreprocessedData.init_L
        • PreprocessedData.init_amps
        • PreprocessedData.downscale_factors
        • PreprocessedData.__init__()
      • OptimizationResults
        • OptimizationResults.centers
        • OptimizationResults.Ls
        • OptimizationResults.amps
        • OptimizationResults.converged_early
        • OptimizationResults.early_stopped
        • OptimizationResults.actual_iters
        • OptimizationResults.best_iteration
        • OptimizationResults.best_loss
        • OptimizationResults.best_max_abs_error
        • OptimizationResults.best_rel_l2
        • OptimizationResults.movie_frames
        • OptimizationResults.start_time
        • OptimizationResults.end_time
        • OptimizationResults.relocation_statistics
        • OptimizationResults.__init__()
      • prepare_fit_config()
      • preprocess_data()
      • initialize_optimization()
      • create_loss_function()
      • run_optimization_loop()
      • finalize_results()
      • display_compression_analysis()
      • show_optimization_movie()
      • Fitting Configuration
      • Fitting Stages
        • DEFAULT_SIGMA_MIN_DIAG
        • prepare_fit_config()
        • preprocess_data()
        • resolve_volume_norm_range()
        • resolve_volume_norm_range_denoised()
        • resolve_volume_floor()
        • resolve_volume_floor_with_strategy()
        • resolve_volume_floor_denoised_with_strategy()
        • resolve_volume_floor_denoised()
        • apply_sigma_min_diag_floor()
        • resolve_fit_initial_sigma_diag()
        • initialize_optimization()
        • Speed optimisations (empirically validated)
        • create_loss_function()
        • Speed optimisations (empirically validated)
        • run_optimization_loop()
        • SOURCE_GRID_VOLUME_KEYS
        • lift_source_grid_stats()
        • lift_normalization_stats()
        • stamp_voxels_per_splat()
        • finalize_results()
      • Dynamic Operations
        • DynamicOpsConfig
        • RecentlyRelocatedTracker
        • apply_dynamic_operations()
    • Optimization
      • create_optimizer_and_scheduler()
    • Models
      • GaussianSplatModel
        • GaussianSplatModel.sigma_min_diag
        • GaussianSplatModel.__init__()
        • GaussianSplatModel.voxel_size
        • GaussianSplatModel.sigma_max_diag
        • GaussianSplatModel.current_params()
        • GaussianSplatModel.replace_with()
        • GaussianSplatModel.prune_()
        • GaussianSplatModel.append_()
        • GaussianSplatModel.n_splats()
        • GaussianSplatModel.forward()
      • render_gaussians()
      • render_gaussians_numpy()
      • render_gaussians_pytorch()
      • stable_inverse_softplus()
      • stable_inverse_softplus_torch()
      • solve_lower_triangular()
      • Gaussian Splat Models
      • Model Utilities
    • Multiscale Decomposition
      • Main Functions
      • decompose_image()
      • MultiScaleDecomposer
        • MultiScaleDecomposer.raw_images
        • MultiScaleDecomposer.__init__()
        • MultiScaleDecomposer.forward()
        • MultiScaleDecomposer.initialize_from_pyramid()
        • MultiScaleDecomposer.initialize_finest_scale()
        • MultiScaleDecomposer.initialize_uniform()
        • MultiScaleDecomposer.initialize_coarse()
        • MultiScaleDecomposer.initialize_zero()
      • decomposition_loss()
      • show_optimization_movie()
      • upsample_for_visualization()
    • I/O Operations
      • save_gsplats()
      • load_gsplats()
      • load_default_gsplats()
    • Utilities
      • is_mps_available()
      • resolve_torch_device()
      • tril_size()
      • calculate_gradient_dilution_factor()
      • pack_tril()
      • unpack_tril()
      • validate_cholesky_shape()
      • permute_cholesky_packed()
      • embed_cholesky_packed()
      • diag_indices()
      • offdiag_indices()
      • split_tril()
      • merge_tril()
      • tril_size()
      • calculate_gradient_dilution_factor()
      • pack_tril()
      • unpack_tril()
      • diag_indices()
      • offdiag_indices()
      • split_tril()
      • merge_tril()
      • recombine_cholesky()
      • validate_cholesky_shape()
      • permute_cholesky_packed()
      • embed_cholesky_packed()
    • Seed Generation
      • generate_seeds()
      • seed_from_decomposition()
      • seed_from_edges()
      • seed_from_grid()
      • seed_from_peaks()
    • CLAHE Enhancement
      • apply_clahe()
    • Batch Fitting
    • Culling
      • Two modes are available
      • Why two modes?
      • CullResult
        • CullResult.keep_mask
        • CullResult.n_culled
        • CullResult.error_budget
        • CullResult.phase1_candidates
        • CullResult.phase2_iterations
        • CullResult.max_joint_error
        • CullResult.mode
        • CullResult.__init__()
      • compute_per_splat_deletion_error()
      • cull_by_contribution()
    • Quality Metrics
      • compute_ssim()
      • compute_psnr()
      • otsu_threshold()
      • compute_foreground_psnr()
      • compute_quality_metrics()
    • Calibration (Blind-Spot Cross-Validation)
      • CalibrationResult
        • CalibrationResult.k_values_requested
        • CalibrationResult.k_values_effective
        • CalibrationResult.held_out_psnr_db
        • CalibrationResult.train_psnr_db
        • CalibrationResult.held_out_mse
        • CalibrationResult.full_psnr_db
        • CalibrationResult.full_ssim
        • CalibrationResult.held_out_peak
        • CalibrationResult.noise_floor
        • CalibrationResult.fit_times_seconds
        • CalibrationResult.splat_paths
        • CalibrationResult.mask_seed
        • CalibrationResult.mask_fraction
        • CalibrationResult.donut_radius
        • CalibrationResult.fit_config
        • CalibrationResult.volume_shape
        • CalibrationResult.volume_dtype
        • CalibrationResult.timestamp
        • CalibrationResult.held_out_psnr_fg_db
        • CalibrationResult.held_out_psnr_fg_weighted_db
        • CalibrationResult.foreground_mask_fraction
        • CalibrationResult.__init__()
        • CalibrationResult.foreground_otsu_threshold
        • CalibrationResult.fg_bg_ratio
        • CalibrationResult.held_out_gain_db
        • CalibrationResult.predict_zero_baseline_mse
        • CalibrationResult.k_star_metric
        • CalibrationResult.held_out_peak_selected
        • CalibrationResult.calibration_region
        • CalibrationResult.original_volume_shape
        • CalibrationResult.splat_density
        • CalibrationResult.rd_model
        • CalibrationResult.not_converged
        • CalibrationResult.exponent_fit
        • CalibrationResult.to_json()
        • CalibrationResult.from_json()
      • ExponentFit
        • ExponentFit.alpha
        • ExponentFit.intercept
        • ExponentFit.__init__()
        • ExponentFit.r_squared
        • ExponentFit.n_points
        • ExponentFit.n_distinct
        • ExponentFit.scales
        • ExponentFit.n_features
        • ExponentFit.k_star
      • FloorEstimate
        • FloorEstimate.level
        • FloorEstimate.strategy
        • FloorEstimate.__init__()
      • HeldOutPeak
        • HeldOutPeak.k_star
        • HeldOutPeak.type
        • HeldOutPeak.confidence_db
        • HeldOutPeak.k_knee
        • HeldOutPeak.knee_idx
        • HeldOutPeak.drop_after_peak_db
        • HeldOutPeak.tail_rise_db
        • HeldOutPeak.plateau_spread_db
        • HeldOutPeak.total_rise_db
        • HeldOutPeak.still_climbing
        • HeldOutPeak.knee_margin_db
        • HeldOutPeak.__init__()
      • NoiseFloor
        • NoiseFloor.sigma_hat
        • NoiseFloor.sigma_laplacian
        • NoiseFloor.sigma_haar
        • NoiseFloor.sigma_background
        • NoiseFloor.psnr_max_db
        • NoiseFloor.__init__()
      • RDModel
        • RDModel.__init__()
        • RDModel.floor
        • RDModel.a
        • RDModel.beta
        • RDModel.rmse
        • RDModel.n_points
        • RDModel.converged_fraction
        • RDModel.predict_error()
        • RDModel.k_for_error()
      • RegionSelection
        • RegionSelection.origin
        • RegionSelection.size
        • RegionSelection.strategy
        • RegionSelection.__init__()
        • RegionSelection.n_features
        • RegionSelection.score
      • SplatDensity
        • SplatDensity.feature_method
        • SplatDensity.n_features_reference
        • SplatDensity.k_star_reference
        • SplatDensity.saturation_exponent
        • SplatDensity.saturation_cap
        • SplatDensity.splats_per_feature
        • SplatDensity.feature_threshold
        • SplatDensity.predict_k()
        • SplatDensity.__init__()
      • build_k_grid()
      • calibrate()
      • calibrate_saturation_exponent()
      • count_features()
      • cv_mask()
      • donut_median_fill()
      • estimate_floor()
      • estimate_floor_result()
      • estimate_noise_floor()
      • feature_threshold()
      • find_k_star()
      • fit_rd_model()
      • fit_saturation_exponent()
      • foreground_mask_otsu()
      • foreground_mask_otsu_smoothed()
      • held_out_gain_db()
      • held_out_psnr()
      • held_out_psnr_fg_weighted()
      • held_out_psnr_foreground()
      • predict_zero_baseline_mse()
      • select_calibration_region()
      • render_calibration_report()
    • Level of Detail (LOD)
      • RecipeParams
        • RecipeParams.n_lods
        • RecipeParams.additive_method
        • RecipeParams.reveal_center
        • RecipeParams.spatial_dims
        • RecipeParams.breakpoints
        • RecipeParams.truncation_sigmas
        • RecipeParams.max_n_dense
        • RecipeParams.max_elements
        • RecipeParams.partition_rule
        • RecipeParams.compression_factor
        • RecipeParams.levels
        • RecipeParams.substitutive_method
        • RecipeParams.lloyd_iterations
        • RecipeParams.candidate_bins_k
        • RecipeParams.coverage_inflation
        • RecipeParams.conserve_mass
        • RecipeParams.additive_ladders
        • RecipeParams.refine
        • RecipeParams.refine_iters
        • RecipeParams.volume
        • RecipeParams.image_min
        • RecipeParams.volume_axes
        • RecipeParams.coarsen_dims
        • RecipeParams.quality_stamps
        • RecipeParams.quality_max_pair_splats
        • RecipeParams.device
        • RecipeParams.seed
        • RecipeParams.effective_max_elements
        • RecipeParams.__init__()
      • build_recipe()
      • compute_additive_order()
      • decimate()
      • interleave_order_across_slices()
      • make_additive_lod()
      • make_lod_pyramid()
      • make_substitutive_lod()
      • Algorithms (additive_lod §3-4)
      • Modifiers (compose with EVERY method above)
      • resolve_additive_method()
      • resolve_truncation_sigmas()
      • BreakpointSpec
      • clamp_counts_breakpoints()
      • validate_counts_breakpoints()
      • interleave_order_across_slices()
      • compute_additive_order()
      • additive_rung_count()
      • make_additive_lod()
      • Public API
      • RefineName
      • resolved_merge_coarsen_dims()
      • make_substitutive_lod()
      • merge_to_count()
      • RecipeName
      • RECIPE_NAMES
      • LEGACY_RECIPE_NAMES
      • canonical_recipe_name()
      • MATRIX_RECIPES
      • COMPOSED_RECIPES
      • RecipeResult
      • RecipeParams
        • RecipeParams.n_lods
        • RecipeParams.additive_method
        • RecipeParams.reveal_center
        • RecipeParams.spatial_dims
        • RecipeParams.breakpoints
        • RecipeParams.truncation_sigmas
        • RecipeParams.max_n_dense
        • RecipeParams.max_elements
        • RecipeParams.partition_rule
        • RecipeParams.compression_factor
        • RecipeParams.levels
        • RecipeParams.substitutive_method
        • RecipeParams.lloyd_iterations
        • RecipeParams.candidate_bins_k
        • RecipeParams.coverage_inflation
        • RecipeParams.conserve_mass
        • RecipeParams.additive_ladders
        • RecipeParams.refine
        • RecipeParams.refine_iters
        • RecipeParams.volume
        • RecipeParams.image_min
        • RecipeParams.volume_axes
        • RecipeParams.coarsen_dims
        • RecipeParams.quality_stamps
        • RecipeParams.quality_max_pair_splats
        • RecipeParams.device
        • RecipeParams.seed
        • RecipeParams.effective_max_elements
        • RecipeParams.__init__()
      • build_flat()
      • build_stream()
      • build_levels()
      • build_levels_matrix()
      • build_tiles()
      • build_adaptive()
      • build_overview()
      • PER_PART_RECIPES
      • uniform_per_part_lod_warning()
      • build_part_lod()
      • build_recipe()
      • AnnotateReport
        • AnnotateReport.path
        • AnnotateReport.dry_run
        • AnnotateReport.leaves
        • AnnotateReport.levels
        • AnnotateReport.__init__()
      • LeafStamp
        • LeafStamp.path
        • LeafStamp.n_splats
        • LeafStamp.energy_fraction_cum
        • LeafStamp.reference_energy
        • LeafStamp.__init__()
      • LevelStamp
        • LevelStamp.path
        • LevelStamp.n_splats
        • LevelStamp.quality
        • LevelStamp.reference_energy
        • LevelStamp.__init__()
      • annotate_quality_store()
      • QualityResult
        • QualityResult.quality
        • QualityResult.l2_sq
        • QualityResult.approx_norm_sq
        • QualityResult.ref_norm_sq
        • QualityResult.approx_pair_fraction
        • QualityResult.ref_pair_fraction
        • QualityResult.n_cross_pairs
        • QualityResult.n_approx_pairs
        • QualityResult.n_ref_pairs
        • QualityResult.__init__()
      • mixture_quality()
      • total_self_energy()
      • VolumeRefitConfig
        • VolumeRefitConfig.iters
        • VolumeRefitConfig.lr
        • VolumeRefitConfig.early_stop_patience
        • VolumeRefitConfig.never_worse
        • VolumeRefitConfig.conserve_mass
        • VolumeRefitConfig.frame_tolerance
        • VolumeRefitConfig.image_min
        • VolumeRefitConfig.__init__()
      • volume_refine_splats()
    • Node Tree
      • GSplatLeaf
        • GSplatLeaf.additive_sublods
        • GSplatLeaf.meta
        • GSplatLeaf.__post_init__()
        • GSplatLeaf.n_additive_sublods
        • GSplatLeaf.n_splats
        • GSplatLeaf.ndim
        • GSplatLeaf.__init__()
      • GSplatLodGroup
        • GSplatLodGroup.__post_init__()
        • GSplatLodGroup.default_level
        • GSplatLodGroup.n_children
        • GSplatLodGroup.n_splats
        • GSplatLodGroup.__init__()
      • GSplatPartition
        • GSplatPartition.__post_init__()
        • GSplatPartition.n_splats
        • GSplatPartition.__init__()
      • GSplatNode
      • iter_leaves()
      • total_splats()
      • node_ndim()
      • center_bounds()
      • map_leaves()
      • without_meta_key()
      • iter_default_leaves()
      • amplitude_weighted_centroid()
      • global_amplitude_max()
      • nondegenerate_axes()
      • node_from_substitutive_levels()
      • gate_authored_selector()
      • tree_from_substitutive_levels()
      • substitutive_levels_from_tree()
      • is_matrix_shaped()
    • Content Planning
      • ContentField
        • ContentField.density
        • ContentField.cell
        • ContentField.shape
        • ContentField.method
        • ContentField.total
        • ContentField.box_weight()
        • ContentField.marginal()
        • ContentField.__init__()
      • FitPlan
        • FitPlan.volume_shape
        • FitPlan.boxes
        • FitPlan.overlap
        • FitPlan.feature_method
        • FitPlan.min_leaf
        • FitPlan.max_leaf
        • FitPlan.density
        • FitPlan.bsp_tree
        • FitPlan.__init__()
        • FitPlan.meta
        • FitPlan.total_budget
        • FitPlan.n_boxes
        • FitPlan.overlap_fraction()
        • FitPlan.to_json()
        • FitPlan.from_json()
      • PlanBox
        • PlanBox.box
        • PlanBox.n_features
        • PlanBox.budget
        • PlanBox.dims
        • PlanBox.voxels
        • PlanBox.__init__()
      • fit_planned()
      • fit_planned_parallel()
      • plan_partition()
      • plan_volume()
      • scan_content()
      • CONTENT_CULL_RETENTION
    • Scene Interop
      • ClassicalSplats
        • ClassicalSplats.positions
        • ClassicalSplats.scales
        • ClassicalSplats.quaternions
        • ClassicalSplats.opacities
        • ClassicalSplats.colors
        • ClassicalSplats.sh_degree
        • ClassicalSplats.source_format
        • ClassicalSplats.y_up
        • ClassicalSplats.n_splats
        • ClassicalSplats.__init__()
      • TrackingGraph
        • TrackingGraph.node_ids
        • TrackingGraph.t
        • TrackingGraph.positions
        • TrackingGraph.edges
        • TrackingGraph.scale
        • TrackingGraph.units
        • TrackingGraph.n_nodes
        • TrackingGraph.n_edges
        • TrackingGraph.n_timepoints
        • TrackingGraph.positions_um()
        • TrackingGraph.__init__()
        • TrackingGraph.index_of()
        • TrackingGraph.edge_indices()
        • TrackingGraph.divisions()
        • TrackingGraph.lineage_ids()
      • classical_to_gsplat_data()
      • detect_classical_format()
      • export_inria_ply()
      • gsplat_data_to_inria_ply()
      • gsplats_to_tracksdata_graph()
      • import_gsplats()
      • quat_to_rotmat()
      • read_antimatter_splat()
      • read_geff()
      • read_inria_ply()
      • read_sog()
      • read_spz()
      • read_supersplat_ply()
      • rotmat_to_quat()
      • splat_mask_and_bbox()
    • Preprocessing
      • calibrate_all_channels()
      • calibrate_h_for_channel()
      • calibrate_nlm_h()
      • denoise_nlm()
      • denoise_volume_array()
      • denormalize_volume()
      • normalize_volume()
    • GPU Profiling
      • load_profiles()
      • save_profiles()
      • append_run()
      • recompute_summary()
      • get_gpu_summary()
      • get_gpu_throughput_table()
      • list_profiled_gpus()
      • migrate_v1_profile()
    • Volume Rendering
      • render_to_volume()
      • render_to_volume_tensor()
  • luxar.colormaps
    • resolve_colormap()
    • scalars_to_colors()

TypeScript API Reference:

  • TypeScript Viewer API
Luxar
  • Search


© Copyright 2025-2026, Luxar Development Team.

Built with Sphinx using a theme provided by Read the Docs.