Skip to content

Add First Century Church Directory section#142

Merged
hawkandheron-dev merged 10 commits into
mainfrom
claude/church-directory-map-9kMIE
May 16, 2026
Merged

Add First Century Church Directory section#142
hawkandheron-dev merged 10 commits into
mainfrom
claude/church-directory-map-9kMIE

Conversation

@hawkandheron-dev
Copy link
Copy Markdown
Owner

Adds a new map-based section: an interactive Mediterranean map with a pin
per first-century church. Clicking a church opens a force-directed "web"
of the people, households, and communities named there in the New
Testament; people who traveled between churches appear as shared nodes
bridging multiple church nodes. Paul's four missionary journeys are a
toggleable map overlay, and a "whole web" view shows every person and
church at once.

Backed by new FCC_ Supabase tables (regions, churches, people,
households, the person-church membership join, scripture references,
journeys, journey stops, journey people) with public-read RLS and
admin-write policies, seeded with a full New Testament compilation.
Scripture references are stored as reference strings only and fetched at
display time via the existing NET Bible API service.

https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw

claude added 10 commits May 14, 2026 12:30
Adds a new map-based section: an interactive Mediterranean map with a pin
per first-century church. Clicking a church opens a force-directed "web"
of the people, households, and communities named there in the New
Testament; people who traveled between churches appear as shared nodes
bridging multiple church nodes. Paul's four missionary journeys are a
toggleable map overlay, and a "whole web" view shows every person and
church at once.

Backed by new FCC_ Supabase tables (regions, churches, people,
households, the person-church membership join, scripture references,
journeys, journey stops, journey people) with public-read RLS and
admin-write policies, seeded with a full New Testament compilation.
Scripture references are stored as reference strings only and fetched at
display time via the existing NET Bible API service.

https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
Clicking a church now renders its people/household web as a geo-anchored
canvas overlay: the church sits at its real coordinates, people fan around
it, and travelers' threads stretch across the map to the other churches
they belong to. The web pans and zooms with the map via a d3-force
simulation in screen space.

Replaces the side panel — church/person/household details now appear in a
compact floating card on node click, with a hover tooltip on the web.

https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
Travelers were being dragged across the map by the link force toward
every church they belong to, tangling the web. Links to other churches
now carry zero force — members orbit the focused church while their
connections still render as faint dashed threads reaching outward.

https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
- De-duplicate the two Romans 16 group households (Aristobulus, Narcissus):
  the pseudo-person row is dropped so each shows as a single household node.
- Distinguish members from visitors by is_primary rather than raw church
  count — people whose home church is elsewhere orbit in a wide outer ring,
  while members with outside connections (Priscilla, Luke) stay in close.
- Replace the dashed bridge lines with gentle curved threads that fade from
  the person outward toward the far church.

https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
The curve bow and fade gradient were scaled to the full person-to-church
distance, but the far church is usually off-screen when zoomed in on a
city — so the visible portion was all straight and full-opacity. Anchor
the curve and fade to a fixed screen distance from the person instead.

https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
…d arcs

- Clicking a city now flies to and centers on that city (was using
  fitBounds with bridge churches, which centred far off the clicked one).
- Person/household names render under every dot in the focused web,
  positioned radially outward from the focused church; the floating
  tooltip replaces the dot's label on hover.
- Clicking a person pins their bridges at full opacity and lights their
  connected cities; the highlight persists until another node is clicked
  or the detail card is closed (empty-map click closes the card without
  clearing the focused web).
- Orbit radii scale with the map zoom (more gently than the map itself,
  clamped so dots are always individually visible and the cloud never
  exceeds ~42% of the viewport).
- Bridge threads bow away from the focused church instead of curving
  consistently one way, so they radiate outward like spokes rather than
  crossing through the orbit cluster.

https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
- Bridge gradient now runs along the forward direction for a fixed screen
  distance, not s→t along the full chord. The chord-direction gradient
  meant the curve's bow apex landed deep in the faded zone (because the
  back-shifted control point puts the apex behind the chord midpoint),
  hiding the arc entirely. Bumped default head opacity to 0.7 and bow
  radius so the curve reads clearly.
- Push fresh radii into d3-force's link-distance cache on every map
  move/zoom — d3 only re-reads distances when .distance(fn) is called,
  so orbits weren't actually expanding when zooming.
- Normalise every "House church of …" / "House of …" name to
  "Household of …" via a single helper, and replace the standalone
  "House church" tooltip/subtitle/role labels with "Household".

https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
Bridge threads: draw a straight radial spoke from each person out past the
outer (visitor) ring before starting the quadratic arc. Because no dot in
the cluster sits further from the focus than the outermost ring, the spoke
is guaranteed to clear every dot. The arc's control point is placed even
further along the radial direction, so the curve continues bowing outward
before sweeping toward the target church.

Orbit shape: each member/visitor link gets a stable per-person distance
multiplier (0.7-1.4x base), so dots scatter across a wide band instead of
landing on a single ferris-wheel ring.

https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
Replace the radial-spoke + radial-control geometry with a single quadratic
whose control point sits at the angular midpoint between person and target
(short way around the focused church), well outside the outer ring. Same-
side targets still read as spoke-then-bend; opposite-side targets (e.g.
Paul placed NW of Rome with all his connections east) now sweep wide
around the cluster instead of spearing through it.

Lower default thread opacity (0.7 -> 0.35) and stroke width so the dots
read as the headline and threads as gentle connective tissue. Hover still
brightens, just less aggressively.

https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
Bridge connections only render when the active (hovered or click-pinned)
node is involved — the default view stays clean and the dots are the
headline. As soon as you investigate a person their threads sweep out.

Stop dimming non-neighbor people, households, and bridge churches when
something is active. The cluster keeps its full presence; the active
spoke highlights amber for feedback. Bumped bridge head opacity to 0.8
since it no longer has to compete with a faint default-state layer.

https://claude.ai/code/session_01UAprapGPfvroCH5cQL4TRw
@hawkandheron-dev hawkandheron-dev merged commit 89a26bd into main May 16, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants