Pulto logo
Spatial notebook review for Apple Vision Pro

Pulto

Pulto brings 3D notebook outputs into Apple Vision Pro for teams working with LiDAR, robotics, scanning, simulation, and spatial AI.

01 · Bio

Portrait photo

Built by a software engineer with deep technical range

15+ years of software engineering experience, Python open source work, and conference talks at DEF CON, Skytalks, and PyOhio.

Engineering background

Undergraduate degree with schoolwork in quantum computing and knot theory.

Applied math interests

Recreational applied mathematics, including QMCpy and CA.

02 · Why

3D data is trapped in flat notebook workflows

Jupyter is where spatial data work already happens, but review still happens in flat browser tabs, screenshots, or separate viewers. Pulto gives notebook outputs a native spatial workspace on Apple Vision Pro.

Flat review

Browser tabs and laptop screens compress outputs that need depth, scale, and space.

Fragmented tools

Teams jump between notebooks, viewers, exported files, and screenshots.

Spatial data is already there

Point clouds, Gaussian splats, and USDZ assets already appear in notebook workflows. They should be inspectable in 3D.

03 · Spatial Computing

Spatial computing gives digital work room to exist

Instead of keeping every result inside a flat window, spatial computing lets digital objects occupy space with depth, scale, and position. For notebook teams, that means reviewing code, context, and 3D results together.

Flat computing

Work is organized as tabs, panels, screenshots, and files on a single 2D surface.

Spatial computing

Work can be placed around the user, inspected at scale, and understood from multiple viewpoints.

Traditional notebooks

Code, prose, charts, and 3D outputs compete for attention in one scrolling document.

Spatial notebooks

The notebook stays readable while spatial outputs open beside it for native 3D review.

04 · Product

What Pulto does today

Pulto is a native visionOS notebook viewer that connects to Jupyter servers, displays saved notebook content, and renders 3D outputs inline.

Notebook viewer

Read markdown, code cells, saved outputs, and previews in one Vision Pro window.

Jupyter connection

Connect to a server you control over HTTPS or local-network discovery.

Inline outputs

View tables, charts, images, video, and markdown without leaving the notebook.

Spatial outputs

Inspect 3D notebook outputs as native spatial content.

05 · Workflow

From notebook to spatial review

Start with samples or connect your own Jupyter server, then review notebook outputs in a spatial workspace.

01

Open Pulto

Start with bundled samples or connect your own Jupyter server.

02

Choose a notebook

Browse notebooks and load the one you want to inspect.

03

Review saved outputs

Read markdown, tables, charts, images, video, and code output inline.

04

Inspect 3D results

Open 3D notebook outputs in a spatial workspace.

06 · Roadmap

Run cells, then build live USD scenes

Pulto is adding live cell execution first, then Spatial Notebook USD: linked scene objects that preserve where outputs came from and how they changed.

Live kernels

Planned support for running code cells against a connected Jupyter kernel.

Fresh outputs

Render new tables, charts, markdown, images, and media as they are produced.

USD-backed scenes

Turn executed cell outputs into scene objects with stable paths, exportable as USD or USDZ.

Linked history

Keep cells, outputs, spatial objects, and execution history connected as the scene changes.

07 · Status

Working app and renderer already implemented

Pulto already has a native visionOS viewer, Jupyter connectivity, bundled samples, secure credential storage, and a spatial rendering pipeline.

Working app

Native visionOS notebook viewer with server connectivity and bundled samples.

Spatial renderer

USDZ, point cloud, and Metal-based Gaussian splat rendering are implemented.

Developer tooling

Server extension and Python helpers are planned to make spatial outputs easier to emit from notebook code.

Roadmap underway

Spatial Notebook USD is in development; live linked scene behavior remains planned.

08 · Architecture

A clean path from notebook output to spatial render

Pulto normalizes Jupyter outputs into an app-native content model before rendering, keeping server communication, notebook parsing, UI layout, and 3D rendering separate.

Jupyter boundary

One client handles server communication, credentials, and local-network discovery.

Neutral output model

Notebook outputs become renderable content slots before reaching the UI.

Spatial rendering layer

RealityKit handles USDZ and point clouds; Metal handles Gaussian splats.

Detail SingleNotebookView JupyterAPIClient NotebookImport OutputConverter CompositeGridSlot SwiftUI · RealityKit

09 · Development

Architecture built around a narrow shipping path

The active 1.0 runtime is focused: connect to user-owned Jupyter servers, load saved notebooks, and render outputs through native SwiftUI and RealityKit paths. Release flags keep future systems out of the default user flow.

Active notebook hot path

EntryPoint opens SingleNotebookView; SingleNotebookState coordinates JupyterAPIClient and output conversion.

Native output model

Jupyter MIME bundles become CompositeGridSlot values before reaching SwiftUI, RealityKit, or Metal-backed renderers.

Release-gated roadmap

Execution controls, broad imports, JupyterLab browser, and Spatial Notebook USD remain disabled for 1.0.

Security and regression tests

Tokens use validated transport and Keychain storage; focused tests cover MIME conversion, Jupyter client behavior, and security boundaries.

Help bring spatial notebooks to Vision Pro

We're looking for early users working with LiDAR, robotics, 3D scanning, simulation, and spatial AI. Try Pulto, share real notebook workflows, or partner with us on Spatial Notebook USD.