CloudPoint is a native Apple Silicon Mac app for creating local 3D Gaussian scenes without CUDA. Version 1.3 has two deliberately different workflows:
- Single Image runs Apple SHARP on one confirmed view. It is fast, detailed from the source camera, and does not pretend to reconstruct unseen sides.
- 360 Scan solves real camera poses with RealityKit, prepares one calibrated scene, and optimizes one coherent Gaussian representation with OpenSplat on Metal/MPS.
The retired LingBot point-cloud UI and independent-view SHARP fusion are not used by either workflow.
| Mode | Sources | Result |
|---|---|---|
| Single Image | JPEG, PNG, HEIC, camera snapshot, selected MOV/MP4/M4V frame | Exact 1,179,648-Gaussian SHARP scene from one view |
| 360 Scan | Guided camera scan, MOV/MP4/M4V video, 3–200 images | Pose-aware OpenSplat scene from 3–120 admitted views |
For 360 Scan, keep the object and lighting still while moving the camera in a smooth arc with substantial visual overlap. Three or four solved views can produce a useful Partial scene. For a credible full loop, capture at least 20 overlapping views, include the sides and back, and finish near the starting view. CloudPoint labels measured coverage as Partial, Nearly Complete, or Complete 360°; it does not relabel a partial result as a full scan.
Projects autosave under ~/Downloads/CloudPoint/Projects by default. Choose a
different base folder in CloudPoint → Settings → Working directory.
Ephemeral pose/training input uses the macOS temporary directory and is removed
only after ownership validation.
- Apple Silicon Mac
- macOS 15.0 or newer for Single Image
- macOS 26.0 or newer for 360 Scan in the v1.3.0 packaged runtime
- Internet access for the one-time Apple SHARP model download, unless a local Release build explicitly embeds the pinned checkpoint seed
- Approximately 6 GiB free for the app runtime, checkpoint, and working data
The 360 card is disabled with an exact host-version message if the packaged OpenSplat dependency closure cannot run on the current macOS version. The app never silently falls back to CPU for a published 360 scene.
Public CloudPoint builds do not bundle Apple’s model weights. On first use they show the research-model license, download the pinned 2.81 GB checkpoint directly from Apple, and verify its size and SHA-256. An explicitly configured local Release build can carry the same verified checkpoint as an installation seed; license acceptance is still required, and the seed is never part of a public ZIP. Inference stays local after setup.
- Download
CloudPoint-v1.3.0-macOS-arm64.zipfrom the latest release. - Unzip it and move
CloudPoint.appto/Applications. - This experimental build is ad-hoc signed and not notarized. On first launch, Control-click the app in Finder, choose Open, and confirm the prompt.
- Under Single Image, choose an image, a camera snapshot, or a video.
- For video, select the exact source time and confirm the frame.
- Complete the one-time Apple SHARP setup if prompted.
- CloudPoint reconstructs, validates, and opens the complete raw SHARP scene.
Single Image does not run ICP, voxel deduplication, or multi-view fusion. Start a new scene at any time from the welcome screen or File menu.
- Under 360 Scan, choose Guided Camera Scan, a video, or 3–200 images.
- Keep one static subject visible while moving slowly around it. For a camera scan, CloudPoint accepts changing, sharp, overlapping views up to a 120-view safety limit; stop after at least three.
- Review the admitted keyframes and exclude any blurred or unrelated view.
- CloudPoint solves camera poses and intrinsics, validates scene geometry and coverage, trains OpenSplat on MPS, validates the final PLY, then probes the production Metal renderer before publishing the result.
- If coverage is Partial or Nearly Complete, use the guidance in the workspace inspector to improve the next scan.
Pose solving can reject a sequence whose subject moved, overlap is broken, calibration is unavailable, cameras face away from the sparse scene, or motion contains an implausible jump. OpenSplat optimization is intentionally bounded but may take several minutes. Cancel and checkpoint resume have finite terminal paths.
Source media, frames, calibration, poses, optimizer checkpoints, final PLY, and provenance stay on the Mac. The only production network operation is the explicit model download during setup, and a locally seeded installation does not make that request. A project is self-contained:
Example-<uuid>.cloudpoint/
├── Manifest.json
├── Frames/
├── Calibration/
├── Sparse/
├── Training/
├── Outputs/Gaussians/
└── Logs/
Durable project files are committed atomically. Closing or cancelling a scan removes only CloudPoint-owned temporary training data; projects, source media, the model checkpoint, and completed output are preserved.
Development requires Xcode, Swift 6, XcodeGen, uv, CMake, and the build-only
Homebrew OpenCV and PyTorch formulas used for the arm64 OpenSplat runtime:
scripts/bootstrap
open CloudPoint.xcodeprojRelease embedding is off by default. To produce a private machine-local build,
set CLOUDPOINT_SHARP_BUNDLE_CHECKPOINT in the ignored
Config/Local.xcconfig to the absolute path of the exact pinned
sharp_2572gikvuh.pt. The Release phase rejects links and mismatched bytes,
keeps the seed under Contents/Resources/Sharp outside WorkerRuntime, and
removes stale seed output whenever the setting is empty. Never use that opt-in
for a public archive or ZIP. Public ZIPs must be produced through
scripts/package-public-release, which forces the setting empty and rejects the
checkpoint in both the app and resulting archive.
Core verification:
uv run --project worker --extra sharp pytest -q
uv run --project worker --group dev ruff check worker/src worker/tests
scripts/tests/test-worker-runtime-packaging
scripts/tests/test-sharp-model-packaging
xcodebuild build-for-testing -project CloudPoint.xcodeproj -scheme CloudPoint \
-destination 'platform=macOS,arch=arm64' CODE_SIGNING_ALLOWED=NO
xcodebuild test-without-building -project CloudPoint.xcodeproj -scheme CloudPoint \
-destination 'platform=macOS,arch=arm64' -parallel-testing-enabled NO \
CODE_SIGNING_ALLOWED=NOSee the documentation index and project memory for the current architecture, decisions, lessons learned, runtime pins, test evidence, and release boundaries. Legal terms and source obligations are recorded in third-party notices.
CloudPoint is licensed under the Apache License 2.0. OpenSplat is
AGPL-3.0; its complete corresponding source and CloudPoint patches are in
Vendor/OpenSplat. Apple SHARP source, the separately obtained research model,
and all other components retain their own terms.