Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.valar.space/llms.txt

Use this file to discover all available pages before exploring further.

For the complete documentation index, see llms.txt.
An Area of Interest (AOI) is a workspace-level geographic region you persist alongside the spacecraft fleet. Every AOI is automatically evaluated against every spacecraft in the workspace, producing a 7-day forecast of predicted overflight events on demand — there is no per-spacecraft binding step. The AOI Overview page is where you read one AOI in depth, edit its identity and geometry in place, and act on its overflight forecast. Route: /aoi Open the page via the AOIs entry in the sidebar.

Page Layout

AOI Overview page with the identity hero, geometry preview, properties column, and events section The Overview page is a three-band layout with the AOI list docked on the right and a shared topbar above:
BandContents
Top barTags filter, status filter, New AOI button, and a toggle that collapses the right-hand list pane.
Identity heroColour swatch, AOI name, status pill, optional description, tag chips, an edit-mode toggle, and a kebab menu.
Geometry blockAuto-zooming geometry preview on the left; geometry properties (validity window, min elevation, type, detail, centroid) on the right.
Events sectionSpacecraft filter, Recompute button, last-computed timestamp, 7-day timeline, and the column-less event list.
The right-docked AOI list pane is shared with the AOI Map page and is rendered identically on both routes.

Right-Pane AOI List

The AOI list pane is a vertical column on the right edge of the page. From top to bottom:
ControlBehaviour
Search AOIsLocal text filter — matches any AOI whose name contains the typed query (case-insensitive).
Filter by tagMulti-select dropdown in the top bar. Picks any subset of tags currently in use; rows must match every selected tag.
Filter by statusMulti-select dropdown in the top bar with options Active, Inactive, and Out of window.
AOI rowsColour swatch, name, status icon (check for Active, slashed circle for Inactive, cross for Out of window), and a relative “next pass” label.
Clicking a row selects the AOI and updates the URL to /aoi?selected=<id>. The URL parameter survives reloads and links — paste /aoi?selected=<id> to deep-link straight to a specific AOI. When the search box plus the topbar filters narrow the list to zero rows, the pane renders No AOIs match these filters with a Clear filters link that resets every filter. When the workspace has no AOIs at all, the pane shows No AOIs yet with a Create your first AOI button that opens the creation method picker on the AOI Map page. The collapse toggle in the top bar hides the list pane so the main content takes the full page width; click it again to bring the list back.

Identity Hero — In-Place Editing

The identity hero is the top band of the Overview page. By default every field renders as plain text — selection alone does not let you edit. Click the pen icon at the right edge of the hero to switch into edit mode. The pen icon is the only entry point to editing; switching to a different AOI in the list resets edit mode back off. In edit mode, each identity field becomes inline-editable:
FieldEdit affordance
Colour swatchClick the swatch to open a 12-swatch palette popover. Pick a colour and the popover closes. The palette colours are Emerald, Teal, Sky, Blue, Indigo, Violet, Fuchsia, Rose, Red, Orange, Amber, and Lime.
NameClick the heading text to inline-edit. Up to 100 characters. Enter commits, Escape reverts. An empty name surfaces Name is required inline and blocks the save.
DescriptionClick the description (or the Add a description… placeholder) to inline-edit. Up to 100 characters. A live N/100 counter renders beneath the input.
TagsClick the tag row to edit. Type a tag and press Enter or , to commit it as a chip; Backspace on an empty input removes the last chip. Up to 20 tags, each ≤64 characters. Exceeding the cap surfaces Up to 20 tags, each ≤64 characters inline.
To the right of the pen icon, the kebab menu offers two actions, both enabled only when edit mode is on:
ActionBehaviour
Set active / Set inactiveLabel flips with the current state. Setting Inactive pauses the AOI — no events are generated. Setting Active re-enables forecasting.
Delete AOIOpens a confirmation dialog Delete AOI with the body Are you sure you want to delete "<name>"? This action cannot be undone. Click Delete to confirm or Cancel to keep the AOI. After deletion, the page navigates to the next remaining AOI, or to the empty state if it was the only one.
The status pill in the hero shows the AOI’s lifecycle state:
StatusMeaning
ActiveDefault state. Overflights compute when you click Recompute or change a geometry / lifecycle field.
InactiveThe AOI is paused — no events are generated until you set it active again.
Out-of-windowOutside the AOI’s validity window. Events do not generate until the current time falls inside the window.

Geometry Block

The geometry block is rendered as two columns. On the left, a 16:9 Mapbox preview auto-zooms to the AOI’s bounding box and renders the shape in the AOI’s chosen colour. On the right, a properties column lists the geometry’s derived values. Geometry preview and properties column on the AOI Overview page

Geometry Preview

The preview is a read-only map by default. Reference frame is WGS84 geodetic — every coordinate is latitude / longitude on the WGS84 ellipsoid. The camera fits the AOI’s bounding box with consistent padding on every load, and reapplies when you switch between light and dark themes. When edit mode is on, an editor opens beneath the preview. You can adjust the geometry by:
  • Dragging a vertex, midpoint, or disk handle directly on the preview.
  • Editing the structured coordinates in the editor card (vertices for a polygon, centre + radius for a disk, per-piece vertices for a multipolygon).
Commits route through the same validation rules described on the Create an AOI page; a successful edit triggers an automatic recompute.

Geometry Properties

The properties column lists derived values for the current geometry:
FieldDescription
Validity windowstart UTC → end UTC when both bounds are set, <start> (UTC) — Open-ended when only the start is set, Open-ended — <end> (UTC) when only the end is set, or Always active when neither bound is set.
Min elevationThe elevation threshold in degrees. Spacecraft below this elevation from any point in the AOI are not considered visible.
TypePolygon, Disk, or Multipolygon.
DetailA polygon’s vertex count, a disk’s radius in kilometres, or a multipolygon’s piece count.
CentroidMean latitude / longitude of every parsed coordinate, rounded to two decimals.
In edit mode, Min elevation becomes inline-editable and Validity window opens an edit dialog:
  • Edit validity window opens a modal with two independent date-time pickers, one per bound. Each bound has a Set / Open-ended switch — flip a switch to Open-ended to leave that side unbounded, or to Set to surface a MiniCalendar plus an HH:MM input. Leaving both sides Open-ended means the AOI is always active; setting only one means it is bounded on that side and open on the other. When both bounds are Set, the end must be strictly after the start — otherwise Validity end must be after validity start surfaces and Save is disabled. All times are UTC.
  • Min elevation accepts values between and 90° (0.5° step). Values outside the range surface Min elevation must be between 1 and 90.
Type, Detail, and Centroid are always read-only — they reflect what the geometry editor produces.

Events Section

The events section is the bottom band of the page. It composes a spacecraft filter, the Recompute action, the 7-day timeline, and the column-less event list.

Header Controls

ControlDescription
Spacecraft filterDropdown defaulting to All spacecraft. Selecting a spacecraft narrows both the timeline and the list to that vehicle’s events.
RecomputeRefreshes the 7-day overflight schedule for the AOI across every spacecraft in the workspace. Disabled when the AOI is Inactive or Out-of-window, or while a recompute is already running.
Last computedRelative timestamp of the last successful recompute, or Never computed before the first run.

Lifecycle Banners

The events section surfaces a banner in place of a populated list when the AOI’s state explains why no rows are showing. Only one banner is rendered at a time, and the cascade is:
BannerWhy it shows
Recompute failed — try againThe most recent recompute rejected. The error clears the next time you click Recompute.
Outside validity windowThe current time falls outside the AOI’s validity bounds.
AOI is inactiveThe AOI is paused.
No overflights computed yet — click Recompute to generate the forecastThe AOI has never had a recompute run.
No overflights in the next 7 days — try lowering the elevation threshold or check spacecraft orbit dataThe recompute succeeded but produced no events for any spacecraft in the workspace.

7-Day Timeline

The timeline plots one row per spacecraft over the next 7 days. Day-tick labels line the top axis. Each bar’s position represents the entry time, the width represents the duration, and the height scales with the peak elevation (taller = higher peak). The spacecraft filter applies to both the timeline and the list.

Column-Less Event List

Below the timeline, each event renders as a row with embedded labels — not a table. From left to right: the spacecraft name, the peak elevation, the duration, and the entry time relative to now (in 2h 30m, in 1d 4h, etc.). Clicking a row expands an inline detail panel:
FieldDescription
EntryThe earliest instant any point in the AOI sees the spacecraft above the elevation threshold (UTC).
PeakThe instant of the maximum elevation in the pass (UTC).
ExitThe latest instant any point in the AOI still sees the spacecraft above the threshold (UTC).
Peak elevationMaximum elevation angle in degrees observed during the event.
Peak pointThe geodetic latitude / longitude of the AOI point that observed the peak elevation.
Azimuth at peakAzimuth from the peak point to the spacecraft at the peak instant, in degrees clockwise from local north.
Sub-satelliteGeodetic latitude / longitude of the ground point directly below the spacecraft at the peak instant.
Sub-intervalsCount of disjoint visibility windows when the AOI shape produced more than one for the same pass.
PiecesPer-piece peak point and peak elevation breakdown for multipolygon AOIs.
Computed atThe instant the event was last refreshed (UTC).
Only one row may be expanded at a time. Clicking the same row again collapses it. When the spacecraft filter is set to a single vehicle, an N of M shown indicator appears beneath the timeline so you always know how many events the filter is hiding.

Per-Spacecraft Banners

If a spacecraft in the workspace has no orbital data, it is silently excluded from the forecast — only the spacecraft that actually contribute events are surfaced in the spacecraft filter. The events you see represent every other vehicle in the workspace.

Auto-Trigger on Edit

Committing any of the following edits triggers an automatic recompute — you do not need to click Recompute afterwards:
  • Geometry edits (any vertex, disk centre or radius, multipolygon piece).
  • Min elevation changes.
  • Validity window changes.
  • Setting the AOI Active or Inactive from the kebab menu.
Identity-only edits — name, description, tags, colour — do not trigger a recompute. Existing events stay in the list after an identity-only edit.

Workspace-Scoped Evaluation

Every AOI is automatically evaluated against every spacecraft in the workspace. There is no AOI-to-spacecraft subscription step; the spacecraft filter is just a UI affordance on top of the full result set.

7-Day Forecast Horizon

The forecast horizon is fixed at 7 days from the instant you click Recompute. Configurable horizons are not yet available. Event timing is better than 1 second at day 1 of the forecast. LEO spacecraft below 500 km may drift a few seconds at day 7 because of atmospheric drag uncertainty. After a fresh orbit determination or a known manoeuvre, click Recompute again to anchor the schedule on the new ephemeris.
  • AOI Map — view every AOI at once on a full-bleed world map and drive creation from the same surface.
  • Create an AOI — define an AOI by drawing, by typing coordinates, or by pasting a GeoJSON file.
  • Overflight events — per-event detail, recompute mechanics, and the 7-day forecast horizon.
  • GeoJSON file format — the supported RFC 7946 subset accepted for AOI creation.