Proximity Landing and Inspiration
Built with proximity.

Proximity

Real-Time Spatial Collaboration Platform for Visual Research

Role: Founding Engineer (Full-Stack) + Interaction Design
Type: Multiplayer Spatial Research Surface
Stack: TypeScript, Next.js 15, React 19, tRPC v11, PostgreSQL, PyTorch


Overview

Proximity is a real-time collaborative workspace that transforms visual archives into programmable spatial grids. It enables teams to arrange, link, and annotate images and datasets on a shared canvas, treating spatial proximity—not hierarchy—as the organizing principle for knowledge work.

Built on the Are.na API, Proximity functions as a living research surface where blocks become manipulable, multiplayer grids. Users pull channels from Are.na, work with them spatially in real time, and push grids back with full source fidelity. The platform sustains complexity rather than flattening it.

A spatial thinking engine that transforms solitary collecting into shared memory and living arguments.

First Public Proximity Grid
For Interfacing Research Laboratory

Problem Space

Creative and research work fragments across folders, feeds, and decks. Are.na calms the noise but remains linear and solitary. Most collaboration tools flatten complexity into static grids, lists, and hierarchies—structures optimized for storage but constrained for exploration and synthesis.

Teams working with large, evolving visual archives need infrastructure that preserves and sustains complexity. The challenge: build a platform supporting real-time multi-user spatial editing, distributed state consistency, semantic discovery across 50,000+ items, bidirectional API integration without data loss, and complete authorship and revision history—all while keeping the interface legible for both technical and non-technical collaborators.


Technical Architecture

Proximity integrates real-time collaboration, spatial data modeling, and semantic indexing into a modular monorepo architecture:

Monorepo structure (Turborepo):

  • apps/app: Next.js 15 web app with React 19, Tailwind, tRPC v11
  • apps/expo: Expo SDK 53 mobile app
  • apps/changelog: Next.js 15 + Fumadocs MDX changelog site
  • packages/: Shared API router, auth (Clerk), database (Drizzle ORM), UI components (shadcn-based)

Real-time collaboration layer: WebSocket-based event routing with operational transformation for conflict-free concurrent editing. Sub-100ms update latency enables synchronous spatial manipulation across distributed clients.

Spatial database: PostgreSQL with PostGIS extension implementing hybrid graph + spatial schema. Supports efficient geometric queries for proximity-based retrieval alongside relational operations and full-text search.

Semantic infrastructure: PyTorch-based embedding pipeline using CLIP for cross-modal (text/image) similarity. Enables semantic tagging, discovery, and cross-grid suggestions that surface unexpected connections across domains.

Integration architecture: Bidirectional sync layer with Are.na REST API maintains eventual consistency between internal workspace and external canonical archive. Custom conflict resolution preserves user intent during concurrent external updates. Push/pull operations maintain source fidelity.

Collaboration primitives:

  • Multi-cursor presence and inline annotations
  • Rigid, Chaos, and Stacks view modes
  • Multi-cell linking for semantic trails
  • Sketchbook annotation layers
  • Teams, commenting, and role-based gating
  • Complete revision history with diff visualization
  • Presenter Mode for living arguments vs. flattened slides

Logic Diagram of Traces

Logic Diagram of Traces
Stack and behaviour sequencing
![Sequencing Diagrams of Tracing](https://d2w9rnfcy7mm78.cloudfront.net/40590773/original_428d38b5e555048e1ef09b2e5e207f90.png?1761423655?bc=0)
Sequencing Diagrams of Tracing
Including Drawing Tools, Typing, and placing media on floating layerage.

Complexity as Method

The system models knowledge as spatial terrain rather than hierarchical taxonomy. Each item participates in multiple overlapping feedback loops:

Cognitive loop: Spatial arrangement supports visual clustering and emergent pattern recognition. Users organize by proximity and association rather than predetermined categories, making thinking feel less abstract and more embodied.

Semantic loop: CLIP-based similarity surfaces connections across domains. The system learns from spatial arrangements to improve recommendations, operating as ambient AI—present but not prescriptive.

Temporal loop: Complete revision history captures how interpretations evolve. Every spatial reorganization, annotation, and link becomes queryable context for understanding how meaning emerged.

Governance loop: Fine-grained access control and audit trails enable collaboration at institutional scale without losing individual authorship or accountability.

The goal: sustain complexity rather than reduce it, making archives navigable, collaborative, and traceable.


Impact

Real-time collaboration: Shipped multi-user spatial canvas with sub-100ms update latency, enabling synchronous collaborative manipulation of large visual datasets across distributed teams.

Semantic discovery: Implemented CLIP-based cross-modal search across 50,000+ archival items, reducing discovery time through text→image and image→related image queries that bypass folder hierarchies.

Data integrity: Built bidirectional sync layer maintaining consistency between internal workspace and external Are.na archive under concurrent updates, achieving zero data loss across 10,000+ sync operations.

Provenance infrastructure: Complete revision history and metadata trails enabled teams to trace decision-making processes, recover previous interpretations, and build trust in shared workspaces.

Spatial interaction model: Introduced Rigid, Chaos, and Stacks views that let teams toggle between structured layouts and exploratory arrangements, bridging technical and non-technical users through intuitive spatial metaphors.


Team & Process

Proximity supported interdisciplinary collaboration between researchers, curators, designers, and studios. The platform bridged technical and non-technical users through a spatial interaction model that felt intuitive while maintaining robust backend guarantees around consistency, history, and synchronization.

Close collaboration with early users shaped feature prioritization: spatial clustering emerged as more valuable than hierarchical organization, revision history proved essential for building trust, and ambient AI became a design principle—surfacing connections without dominating the interface or workflow.

The project operated as a digital greenhouse for ideas, enabling both quiet private study and multiplayer knowledge work within the same system architecture.


Technical Stack

Frontend: TypeScript, Next.js 15, React 19, Tailwind CSS, TanStack Query
Backend: tRPC v11, Zod validators, Node.js
Infrastructure: Vercel (web), EAS (mobile), PostgreSQL with PostGIS
Database & ORM: Drizzle ORM (edge-ready), structured migrations
Auth: Clerk (web), Better Auth scaffolding (mobile)
Real-time: WebSocket synchronization, operational transformation
ML/AI: PyTorch, CLIP embeddings, vector similarity search
Integration: Are.na REST API with custom bidirectional sync protocol
Mobile: Expo SDK 53 (iOS/Android)
Observability: Structured logging, performance monitoring, audit trails

Early net interface for Proximity 2022
Earliest efforts in data clustering started from the first prototype.

Design Philosophy

Proximity treats software infrastructure as a medium for collaborative reasoning. It proposes a thinking engine where collecting transforms into shared spatial memory—valuable for both private reflection and collective intelligence.

The platform models knowledge as navigable terrain where proximity, rather than hierarchy, governs meaning. Visual grids bring fragments into relation. Multi-cell linking traces semantic trails across time, people, and topics. Presenter Mode lets ideas circulate as living arguments instead of static decks.

By tying ideas to spatial arrangement, Proximity makes thinking feel closer, less abstract, and more embodied. Archives, media, and code evolve together as a shared distributed memory system—a quiet, multiplayer, AI-assisted ecology where knowledge becomes close again.

Early Open Source Prototype

Early Open Source Prototype
When developing Proximity (later IRL Proximity) for internal use, we provided an opensource repo for others.
![Proximity Prototype 2022](https://attachments.are.na/40518957/56cc1e205c5de375477bc69e7e84357d.mp4?1761163450)
Proximity Prototype 2022
Earliest usable iteration of the Proximity interface. This was developed independently by IRL for the AASensorium workshop.

Open Source & Future Development

Proximity operates as a monorepo (Turborepo) with modular packages enabling rapid iteration. The changelog site (apps/changelog) documents feature evolution through MDX entries, maintaining transparency around architectural decisions and user-driven priorities.

The platform continues to evolve toward a thinking engine that connects individuals, institutions, and communities through ideas held in spatial arrangement—gathered, grown, and circulated with care across time and space.

Project Media

Proximity Landing and Inspiration
First Public Proximity Grid
Logic Diagram of Traces
Sequencing Diagrams of Tracing
Early Open Source Prototype
Proximity Prototype 2022
Early net interface for Proximity 2022