Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,22 @@ __pycache__/
*.pyd
*.egg-info/
build/
.build/
dist/
swift/**/.build/
swift/**/DerivedData/
swift/**/.derivedData/
swift/**/*.xcuserstate
# The interactive paper's Sites adapter is source, not a generated build.
!site/build/
!site/build/sites-vite-plugin.ts
extern/
records/
# Paper figures are intentional artifacts (the user's global ignore excludes *.png).
!paper/figures/*.png
!paper/baylearn/*.png
# The compiled abstract is a build artifact; rebuild with tectonic (see paper/baylearn/README.md).
paper/baylearn/*.pdf

# Agent scaffolding (not package content)
.claude/
Expand Down
39 changes: 39 additions & 0 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// swift-tools-version: 6.0

import PackageDescription

// The root manifest makes the Swift library consumable directly from this Git
// repository. The nested manifest remains convenient for focused development.
let package = Package(
name: "LCTSpatial",
platforms: [
.macOS(.v15),
.visionOS(.v2),
],
products: [
.library(name: "LCTSpatial", targets: ["LCTSpatial"]),
.library(name: "LCTSpatialMetal", targets: ["LCTSpatialMetal"]),
],
targets: [
.target(
name: "LCTSpatial",
path: "swift/LCTSpatial/Sources/LCTSpatial"
),
.target(
name: "LCTSpatialMetal",
dependencies: ["LCTSpatial"],
path: "swift/LCTSpatial/Sources/LCTSpatialMetal",
resources: [.process("Shaders")]
),
.testTarget(
name: "LCTSpatialTests",
dependencies: ["LCTSpatial"],
path: "swift/LCTSpatial/Tests/LCTSpatialTests"
),
.testTarget(
name: "LCTSpatialMetalTests",
dependencies: ["LCTSpatial", "LCTSpatialMetal"],
path: "swift/LCTSpatial/Tests/LCTSpatialMetalTests"
),
]
)
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,22 @@ The finite-dimensional tradeoff is explicit:
- `normalization="compositional"` favors behavior that tracks matrix
composition more closely

## Vision Pro spatial atlas

The repository is also a Swift package and includes a simulator-ready visionOS
instrument under [`swift/LCTVision`](swift/LCTVision). It is designed for fast
visual intuition-building: scrub `a`, `b`, `c`, or `d` on four complex planes,
while an automatically selected dependent coefficient keeps `ad - bc = 1`.

Two views update together without conflating their meaning:

- a Metal-updated canonical mesh preview for immediate geometric feedback;
- a phase-colored sampled complex field produced by the actual separable LCT.

Add the repository as a Swift Package dependency to use the dimension-agnostic
`LCTSpatial` core or the `LCTSpatialMetal` GPU implementation. The standalone
package and API guide also live at [`swift/LCTSpatial`](swift/LCTSpatial).

## Install

The current public release is
Expand Down
Loading