Structure first, mystique second
See how your relationship handles attractionattraction
PRISM maps the pattern underneath closeness, tension, and pacing so the product feels explainable, private, and useful before it feels mystical.
Runtime
Dimensions
5
Lenses
3
Endpoints
13
PRISM moves from birth input to translated dimensions, then into compatibility indices, lens regrouping, classification, and short explanation copy.
Timeout budget: 8000ms. No external engine URL is configured, so the app falls back to the local engine path.
Current MVP surfaces
Onboarding with privacy-safe birth capture and confidence mapping.
Dashboard and self profile driven by translated dimension output.
Pair report, pattern view, share artifact, and discovery.
Compass for seeing your circle by active relationship lens.
What prism reads
Nine indices, three lenses, one readable structure
The old landing page centered the index system visually. This version keeps that rhythm while grounding it in the current PRISM product model.
attraction
Pull, chemistry, and felt draw.
friction
Where mismatch creates heat first.
stability
How steady the bond can stay.
reconnection
How repair works after rupture.
similarity
Where you move in parallel.
balance
Whether power stays even.
alignment
Shared direction and priorities.
activation
What wakes the connection up.
containment
How much the bond can hold.
Closeness
How you approach emotional depth and 1:1 bonding.
High expression
Bonds fast, wants emotional depth, drawn to vulnerability.
· I prefer 1:1 time over group hangs.
· I bond through vulnerability.
· I feel distant if it stays surface-level.
Lower expression
Needs space, opens slowly, protects inner world.
· I need alone time to recharge after closeness.
· I show care through actions, not words.
· Too much too fast makes me pull back.
Used for
Who feels safe to go deep with.
Venus: bonding driveMoon: emotional accessKetu: letting go
Deeper pattern
A product arc that stays structured all the way down
01
Birth input
Capture the birth data, time-source confidence, and enough location context to compute a reliable chart path.
02
Five dimensions
Translate the chart into CORE, RELATIONAL, DRIVE, IDENTITY, and SURFACE instead of exposing raw engine output.
03
Compatibility model
Compute pair indices, regroup them into the three lenses, then classify the dynamic and explanation layer.
The 13 dynamics
A closer carry-over of the old landing deck, adapted for the current app.
Engine contract
Expected runtime routes
compute_profile
Build the five-dimension profile payload.
compute_chart
Build a full chart when birth time is reliable enough for Lagna and houses.
compute_chart_unknown_time
Build the reduced chart payload when birth time is unknown.
compute_profile_features
Deterministic profile-feature payload from an engine chart (12-house classifier input).
compute_profile_pipeline
Chart + profile + profileFeatures in one call (birth JSON in, three objects out).
compute_pair
Run the existing parallel-profile compatibility model.
compute_synastry
Run the separate cross-chart synastry pass.
compute_self_lenses
Self-lens V1 (fixed algorithm revision) from chart JSON with D1 + lagna_sign.
compute_self_lenses_v2
Self-lens V2 (nodes + aspects weighting) from chart JSON with D1 + lagna_sign.
compute_self_lenses_versioned
Self-lens rankings; optional version string selects a registered lens config revision.
classifyMatch (Node)
Turn compatibility indices into the named dynamic. Option B: implemented in client/src/lib/kp/matchTypes.ts, not Python.
generateExplanations (Node)
Index-driven reasons/risk/next copy. Option B: client/src/lib/kp/interpret.ts.
(internal Python only)
normalize_birth_time_context and compute_dignity live inside kp_engine; not standalone /v1/engine commands.
Start with the current app
Old landing feel, current product stack
This migration ports the visual tone from the old frontend without reintroducing its routing, auth assumptions, or app state. The live product remains the same Next.js PRISM app.