# Impressions Design Reference

## Working Scope

Use this as the internal reference for the current build, imported design work, and the integration decisions that connect map, ground view, and phone AR. Impressions is being built as a privacy-preserving mixed-reality social system, with those views sharing one underlying model rather than becoming separate products.

The current canonical monorepo already contains meaningful contract and system work:

- Rust-owned policy, ledger, world model, social field, sync, phone-AR, release, and protocol boundaries.
- Android UI surfaces and UniFFI snapshot bridging.
- Server-side safe summary and allowed-storage boundaries.
- Protocol schemas, vectors, tests, reports, ADRs, runbooks, and emulator screenshots.

It does **not** yet have proof of a fully unified, provider-backed, physical-Pixel world experience. That distinction is central to the product story, not a footnote.

The current implementation is a Pixel/Android Compose plus Rust software-contract prototype. Its map surface currently uses an Impressions canvas fallback rather than a live map provider; its phone-AR path establishes CameraX and shared-object contracts rather than a proven ARCore Geospatial session; and its server/sync surfaces establish safe deterministic boundaries rather than a live social relay. WEFT and GIST intake remain preserved research inputs, not runtime product capabilities.

## Shared Reference Model

```text
Local sensing + user intent + device pose
  -> local consent / policy / private substrate
  -> policy-safe Impression records and shared world state
  -> one object graph
     -> birdseye living-map projection
     -> third-person traversal projection
     -> embodied phone / glasses projection
  -> governed interaction and updated local state
```

Every projection consumes the same entities, anchors, fields, layers, visibility policies, remote-materialization rules, and renderer contracts. The frame can change; the underlying social world cannot fork.

## Design Views

### 1. Map View

**Built / evidenced:** canonical model and Android map surfaces exist. The current app shows the map-oriented contract work and layer controls over an Impressions canvas fallback, not a live Google, MapLibre, or other provider map. The final product role is the high-level command surface for places, aggregate social fields, route intent, visibility-gated groups, and transitions into embodied space.

### 2. Ground View

**Specified / visual source:** imported Stitch material shows the right city-to-street grammar. The final product role is a legible bridge between map topology and the user's actual embodied position: approach, orbit, join, signal, defer, invite, and flip are world actions rather than feed interactions.

### 3. Phone / Glasses AR

**Built at contract level / evidenced in Android:** the portable core defines a same-object phone-AR overlay with local pose, safe anchors, aggregate route hints, and explicit no-camera-egress constraints. CameraX binding is attempted, but this is not evidence of a running ARCore Geospatial session. The final provider-backed renderer still needs physical Pixel validation, camera/ARCore capability proof, map/geometry adapter decisions, and unified world-surface UX.

## What The Pixel Live View Capture Is Useful For

The supplied Google Maps Live View screens are valuable because they make the interaction pattern concrete: a camera feed becomes an active spatial canvas; route intent becomes anchored direction; visual position, map semantics, sensor pose, and network/provider data converge into a stable overlay.

That is not evidence that Impressions owns or can call a private Google Lens API. It is evidence that the phone-AR-to-glasses interaction grammar is established. Impressions must implement its own policy-governed renderer over its own world model, using providers only through bounded adapters.

## Design Boundaries

- Raw camera frames, raw sensor substrate, and precise location history do not leave the device by default.
- Consent, relationship/group consensus, and auditability govern AIR/Impression egress.
- Hidden co-located realities remain ordinary absence to non-members; no field, heat, or UI residue may reveal their existence.
- Remote materialization is labeled as remote rather than rendered as physical presence.
- Phone AR does not invent a second data boundary; it is a local renderer over the same safe map objects.
- Provider availability, licensing, device capability, and coverage are explicit gates, never implied by an attractive overlay.

## Integration Work

The highest-leverage next build move is not another isolated feature. It is collapsing the diagnostic Android shell toward one primary world surface with a real reference-frame transform:

```text
map -> traversal -> phone AR -> glasses HUD
```

Provider, consent, release, and audit surfaces remain accessible but subordinate. The map, ground, and phone views need to remain coherent before the product can support a useful social layer.

The specific completion gates are equally concrete: replace the map fallback through a bounded provider adapter, establish the real AR session and physical-Pixel evidence, turn bootstrap server/sync contracts into durable governed transport, complete durable encrypted consent/ledger storage and key lifecycle, and decide which WEFT/GIST research mechanisms earn a tested runtime owner.

## Direct Source Links

- [`../impressions/docs/strategy/IMPRESSIONS_GPT55_INTEGRATED_BUILD_SYNTHESIS.md`](../impressions/docs/strategy/IMPRESSIONS_GPT55_INTEGRATED_BUILD_SYNTHESIS.md)
- [`../impressions/docs/strategy/ANDROID_PIXEL_FULL_BUILD_EXECUTION_PLAN_FROM_SYNTHESIS.md`](../impressions/docs/strategy/ANDROID_PIXEL_FULL_BUILD_EXECUTION_PLAN_FROM_SYNTHESIS.md)
- [`../impressions/docs/adr/ADR-006-reference-frame-world-model.md`](../impressions/docs/adr/ADR-006-reference-frame-world-model.md)
- [`../impressions/core/src/world_model.rs`](../impressions/core/src/world_model.rs)
- [`../impressions/core/src/phone_ar.rs`](../impressions/core/src/phone_ar.rs)
- [`../impressions/docs/runbooks/PIXEL_PHYSICAL_VALIDATION.md`](../impressions/docs/runbooks/PIXEL_PHYSICAL_VALIDATION.md)
