NOUSPhotography & Production
Photography & Production Solutions

Sun, moon, stars, and daylight — solved for the light you want, not just the light that's there.

Four independent engines, one page: Sun Director solves sun position and inverse light-timing. Moon Director solves moonlight metering and moon alignment. Star Atlas solves star and deep-sky visibility and imaging windows. Architectural Daylighting solves right-to-light, Daylight Factor, and annual sDA/ASE compliance for buildings — the same closed-form philosophy applied to a planning-permission daylighting study instead of a shoot. Everything below is measured against a running engine.

63
verbs across 4 domains
7
inverse verbs — desired light in, time/place out
20 µs–46 ms
closed-form, no render engine, anywhere in the line
Every number on this page is measured against a running engine — real transcripts, real latency, real accuracy, not marketing estimates.
The tools

Pick the problem you're solving

Same buyer — photographers, cinematographers, DPs, location scouts, drone operators, architects, daylighting consultants, event planners, astrophotographers — different math underneath.

Why this exists

Forward lookup is solved. Inverse light-solving and compliance-grade daylighting mostly aren't.

Every sun-tracking app answers "where is the sun right now." Almost none answer the question a shoot actually asks — or the question a planning application actually needs answered.

Pillar 1

The inverse-light-solving thesis

A location scout doesn't want a sun-position table — they want an answer to "when does the sun sit at 15°, camera-left, for at least 20 minutes?" A DP doesn't want a Kelvin chart — they want to know when the light will actually be 5500K at this exact spot.

Those are inverse problems: desired light in, time/place/duration out. Most tools solve them the way a person would — scan a timeline by eye, or render frame after frame until one looks right. This line solves the inverse directly, in closed form: SUN_BAND_DURATION, SUN_GLINT, SUN_ALIGN, SUN_CONTINUITY, SUN_FIND, MOON_DIRECTOR, MOON_ALIGN — seven inverse verbs across the line, none of them a scan a human has to do by hand.

Pillar 2

Peak-safe by construction

Photographers checking Saturday-morning golden hour cluster around the same few hours, in the same handful of metros, every week. A render-engine-backed tool pays for that correlated demand in full: V-Ray runs ~72 seconds a frame, Arnold 68–477 seconds. Scale that across a metro's photographers checking the same window and the cost curve is brutal.

Every verb here resolves by closed-form math, not rendering or brute-force scanning — microseconds to low milliseconds, with the one full-year search (SUN_ALIGN) at ~46 ms and cacheable. Unit economics don't degrade when demand clusters, because there's no frame being rendered per request.

Pillar 3

Compliance-grade daylighting, without a render farm

A BRE/BS 8206-2 right-to-light study or a LEED v4 sDA/ASE annual daylight run is normally a Radiance or ClimateStudio job — real building geometry, ray-traced sky integrals, minutes-to-hours per iteration, per view, per design option.

The same hemisphere-integral math that drives Sun Director's inverse verbs also drives Vertical Sky Component, Daylight Factor, CIE/Perez sky luminance, and the annual sDA/ASE harness — closed-form, µs-to-ms per call, reading real BIM geometry through native OBJ/glTF/IFC loaders instead of a pre-converted mesh. Documented, not hidden: this is a daylight-coefficient model, not a certified LM-83 ray-traced run — see the honesty line in the Daylighting section below.

Sun Director

Golden hour, exact sun-angle timing, and the inverse: given the light you want, when do you get it?

Send a date and a location, get back the golden-hour window, the moment the sun crosses a specific altitude, or its full path through the day. Then go further: solve for how long the sun sits in an altitude band, when a surface glints toward a viewer, which dates the sun rises down a bearing, or the moment on another date whose light matches today's — all closed-form, not scanned or rendered.

25 µs
warm-min, framing verbs (shadow, subject)
5
inverse verbs — desired light in, time out
<0.01°
sun altitude/azimuth precision
Playground

Call the real API — Sun Director

Pick a tab, fill in a date and place, hit run. Live tabs call the actual gateway; anything not yet exposed over HTTP is clearly marked as a sample.

Proof — Sun Director

Real numbers, not adjectives

Every figure here is measured live against the running engine — warm, single core, shared workstation (an upper bound under contention). Warm-minimum is the quoted floor.

25 µs
warm-min, fastest framing verb (shadow)
<0.01°
sun altitude/azimuth precision
5
inverse verbs — desired light in, time out
~46 ms
full-year henge search, the heaviest verb, cacheable
CompetitorApproachLatencyInverse query?
NOUS Sun DirectorClosed-form solve25–1,000 µsYes — 5 verbs
PhotoPillsManual timeline + Find buttonNot publishedYes (Find button, single bearing)
SketchUp Sun PathSlider + shadow previewNot publishedNo — manual scan only
V-Ray (render engine)GPU ray-tracing~72 sec/frameNo
Arnold (render engine)GPU/CPU ray-tracing68–477 sec/frameNo
Honest limit: all 27 Sun Director verbs are wired onto the HTTP gateway — the tabs above are live calls against the running engine, not canned samples. A handful of the 27 (light diagonal, shadow, true dark window, continuity, staging plan) only appear in the "All verbs" grid below, not as an interactive playground tab; their gateway route is real and verified the same way, they just don't have a Run-button demo yet.
All verbs — Sun Director

Everything this part of the API does

The playground above demos these same calls. All of them are real calls against the same gateway.

Moon Director

Moonlight metering in real lux, and the inverse: which nights give you the moon you want?

Most moon APIs stop at phase percentage. This one meters actual ground illuminance in lux, airmass-corrected for how low the moon sits — then goes further: scan a date span for nights where the moon sits in a chosen altitude/illumination band, or find every date the moon rises or sets on a specific bearing, for a moonrise shot down a street or through a landmark.

31 µs
warm-min, moonlight metering call
2
inverse verbs — desired moon in, date out
Ground lux
not just phase % — real illuminance, airmass-corrected
Playground

Real engine output — Moon Director

These seven verbs are wired onto the HTTP gateway and call the running engine live — every tab below is a live call, not a canned sample. The general Moon API (phase, rise/set, apogee/perigee) is a separate, already-live product.

Proof — Moon Director

Real numbers, not adjectives

31 µs
warm-min, moonlight metering call
Ground lux
airmass-corrected illuminance, not just phase %
2
inverse verbs — desired moon in, date out
14.5 ms
warm-min, 30-day moon-henge search
CapabilityNOUS Moon DirectorTypical moon-phase app / API
Moonlight outputGround illuminance in lux, airmass-corrected, model namedIllumination percentage only
Moon-window search (illum + altitude band, across a span)Inverse, closed-form scanNot offered — manual calendar check
Moon-henge / bearing alignment searchInverse, closed-form scan across a date spanNot found as a programmatic offering
Local civil-time outputDST-correct wall-clock twin for both inverse verbsRarely offered outside a single timezone assumption
Honest limit: all seven verbs above (Moonlight Meter, Moon Window Finder, Moon Henge, Topocentric Position, Libration, Lunar Standstill, and Planet Occultation) are wired onto the HTTP gateway — every tab in the playground is a live call against the running engine, not a sample. The general Moon API (phase, rise/set, apogee/perigee) is a separate product and is live today.
All verbs — Moon Director

Everything this part of the API does

Star Atlas

Look up any star, find what's visible tonight, and search deep-sky objects — by name or by sky position.

Send a star name, a catalog number, or a sky coordinate, get back positions, magnitudes, and visibility — computed for a real place and moment, not read off a static chart. Stars and deep-sky objects in one API.

90 µs
median catalog lookup, single call
Deep coverage
well past naked-eye limits, stars and DSOs alike
2-in-1
stars and deep-sky objects, one API
Cross-checked against the Hipparcos catalog and published deep-sky-object catalogs — same positions and magnitudes, computed independently.
Playground

Call the real API — Star Atlas

Pick a tab, fill in a name, position, or place and time, hit run. Live tabs call the actual gateway; anything not yet exposed over HTTP is clearly marked as a sample.

Proof — Star Atlas

Real numbers, not adjectives

90 µs
median latency, catalog lookup
Hipparcos
catalog basis for star positions and names
Deep coverage
magnitude reach well past naked-eye targets
16
distinct lookup, visibility, and imaging endpoints
CapabilityNOUS Star Atlas APITypical desktop planetarium software
Access modelSingle GET call, JSON responseFull desktop application install
Server-side integrationDrop into any app or backendNot designed for programmatic use
Visibility calculationComputed for your exact time and place, on demandRequires opening the app locally
Catalog scopeStars and deep-sky objects togetherOften split across separate tools or plugins
Honest limit: Imaging Window and its local-civil-time twin are wired onto the HTTP gateway — the tab above is a live call, not a sample. Ecliptic-horizon crossings and full JSON sky renders are also live on the gateway today; render-sky's own timing isn't instrumented yet (no internal compute_us in its response), so we don't quote a latency number for it.
All verbs — Star Atlas

Everything this part of the API does

Architectural Daylighting

Right-to-light, Daylight Factor, and annual sDA/ASE compliance — closed-form, fed by real BIM geometry.

The same hemisphere-integral sky math behind Sun Director's inverse verbs, pointed at a building instead of a shoot: Vertical Sky Component and the Daylight Factor sky component (BRE/BS 8206-2 right-to-light), the full three-term Average Daylight Factor (Lynes formula), CIE Standard Sky and Perez all-weather sky luminance, EPW/TMY3 real-weather ingestion, and an annual sDA/ASE (LEED v4 / EN 17037) harness — reading actual building geometry through native OBJ, glTF, and IFC (ISO 10303-21 STEP) loaders with exact ray-triangle occlusion, not a boxes-only approximation. The IFC/STEP loader now reads far more than flat tessellated panels: extruded, revolved, and swept-disk solids (pipes, rails, conduit), boolean CSG cut-outs (union / intersection / difference), and curved composite-curve profiles — the AEC solid-geometry track is complete, verified by 76/76 loader self-test proofs.

20 µs
fastest verb measured (room-average Daylight Factor)
IFC / glTF / OBJ
native BIM mesh ingestion, no offline conversion step
LEED v4 / EN 17037
sDA/ASE and VSC/DF thresholds targeted
Playground

Real engine output — Architectural Daylighting

Seven verbs below are wired onto the HTTP gateway — every tab is a live call against the running engine, not a canned sample. Four further capabilities (3D-scene VSC, EPW/TMY3 hour lookup, the annual sDA/ASE harness, and BIM mesh ingestion itself) are built and documented but don't have a captured numeric transcript or a gateway route yet, so they're listed honestly in "All verbs" below without a sample.

Proof — Architectural Daylighting

Real numbers, not adjectives

Every figure here is a real transcript from the running engine, not a marketing estimate. These seven verbs are single measured calls (not yet median-benchmarked over repeated runs like Sun Director's), so latency is quoted per-call rather than as a warm-min/median pair.

20 µs
Average Daylight Factor — pure algebra, no transcendentals
28.23%
measured VSC, obstructed south vertical window, overcast sky
3.78%
measured Average Daylight Factor, BS 8206-2 "adequate" case
11
daylighting verbs, incl. native BIM mesh ingestion, glare & ocular hazard
CapabilityNOUS Architectural DaylightingRadiance / DIALux / ClimateStudio-class tools
ApproachClosed-form hemisphere/Lynes/Perez mathRay-traced radiance simulation
Latency per iteration20 µs – 15 msMinutes to hours per view/design option
Building geometry inputNative OBJ / glTF / IFC (STEP) ingestion — tessellated, extruded/revolved/swept-disk solids, boolean CSG, curved profiles — no offline convertUsually needs a pre-baked/exported mesh
Annual LEED v4 sDA/ASE harnessBuilt — real EPW/TMY3 weather, orbit_sat per-point/per-hour cachingStandard but compute-heavy (annual climate-based simulation)
Programmatic / bulk API accessPlain GET endpoints, usage-basedDesktop tools or plugin licenses, not API-first
Honest limit: this is a daylight-coefficient model, not a certified LM-83 ray-traced Radiance run — documented, not hidden, in the engine's own source comments. It folds diffuse sky reaching a point through real apertures (weighted by the chosen sky model: uniform, CIE overcast, CIE clear, or Perez all-weather), direct-beam sun through the aperture, and the BS 8206-2 / Lynes internally-reflected component as a uniform room-level addition, not a pointwise ray-traced bounce; it also omits ground-reflected light and angular glazing transmittance beyond a constant. The seven verbs above (VSC, DF sky component, Average Daylight Factor, Perez sky luminance, Solar Access, Interior Discomfort Glare, Exterior Solar-Glare Hazard) are wired onto the HTTP gateway and measured live against the running engine — real captured transcripts, live calls. Three further verbs — the 3D-scene VSC ray-cast variant, EPW/TMY3 hour lookup, and the annual sDA/ASE harness — plus BIM mesh ingestion itself (native OBJ/glTF/IFC loaders with exact ray-triangle occlusion, no fixed triangle cap) are built and documented in the engine but have no captured numeric transcript or gateway route yet, so they appear in "All verbs" below as capabilities only, with no fabricated sample numbers.
All verbs — Architectural Daylighting

Everything this part of the API does

The playground above demos five of these with real captured samples. The other four are built and documented but not yet demoed with a numeric sample — listed honestly below, schema only.

New — Glare & Eye Safety

From "when does it glint" to "is that glint an eye hazard" — same engine, two new cited models

Two glare capabilities landed this week: an exterior solar-glare hazard classification (the ForgeSolar-class green/yellow/red retinal-hazard band) and an interior discomfort-glare (DGP) verdict for visual comfort. Both are cited, both are proven in the engine's self-test gate, and both are now wired as real socket verbs on the running daemon — measured live with real captured transcripts in the Architectural Daylighting Playground above, the same tier as VSC, Average Daylight Factor, and Solar Access. Not yet wired onto the public HTTP gateway, same as every other verb on this page.

Exterior Solar-Glare Hazard (SGHAT)

The Sandia SGHAT model — the same math behind the FAA-referenced ForgeSolar glare tool — classifies a specular reflection (off glass, PV, or a solar-farm array) as green (low hazard), yellow (temporary after-image / flash-blindness), or red (potential retinal burn), from the retinal irradiance and the source's subtended angle. Cited: Ho, Ghanbari & Diver (SolarPACES 2009/2010; ASME J. Solar Energy Engineering 133(3):031021, 2011); burn/flash thresholds trace to measured biological limits in Sliney & Freasier (1973) and Brumleve (Sandia SAND76-8022, 1977) — not our numbers.

Measured live against the running engine (see Playground above), and verified in the engine's self-test (16/16 proofs): direct-sun retinal irradiance ≈8.0 W/cm² and burn-threshold ratio ≈12.7 both reproduce the paper's own worked example; direct sun classifies "yellow" (after-image), matching the paper exactly. An engineering screening consistent with the SGHAT/ForgeSolar method — not an FAA-certified glare submission.

Interior Discomfort Glare (DGP)

Daylight Glare Probability (Wienold & Christoffersen 2006) with EN 17037 comfort classes (imperceptible / perceptible / disturbing / intolerable), driven by absolute vertical eye illuminance computed from the same VSC hemisphere-sky math the Daylighting verbs above already use — not a separate invented sky integral.

Measured live against the running engine (see Playground above), and verified in the engine's self-test (9/9 DGP proofs + 12/12 interior-verdict proofs): a bright test case classifies "intolerable," a dim one "imperceptible," and DGP moves monotonically the right direction as sky luminance, source size, and viewing position change. The Guth position-index angular fit and a published worked-example cross-check are honestly deferred, not fabricated — this is "computed from the cited model," not a full validated glare render.

Honest limit: both models above are wired onto the HTTP gateway and measured live against the running engine (Playground above) — same tier as the other daylighting verbs on this page, all of them live calls. The Guth position-index angular fit (interior glare) and a full validated glare render are honestly deferred, not fabricated. Also new, lower priority and not detailed here: a multi-bounce radiosity inter-reflection solver (Goral et al. 1984), and a rough/frosted-surface extension (Beckmann–Spizzichino / Cook–Torrance) to the sharp Glint Timing verb above.
Proof

What no single competitor offers together

Each capability below exists somewhere in the market. Nobody assembles the four together, and nobody offers the inverse direction — or the closed-form daylighting-compliance direction — as an API.

CapabilityNOUS Photography & ProductionTypical market alternative
Sun timing (forward)✓ — plus 5 inverse verbsPhotoPills, SketchUp — forward only, or manual "Find" scan
Colour temperature with named model✓ CCT + CIE-1931, model cited in every replyNot offered, or offered without provenance
Moonlight metering (lux, not just phase %)✓ ground illuminance, airmass-correctedRare — most moon apps stop at phase and rise/set
Moon alignment / moon-henge search✓ inverse bearing search across a date spanNot found as a programmatic offering
Astrophotography imaging windows✓ target + place + time → best windowManual planning across separate star-chart and weather tools
Right-to-light / Daylight Factor compliance✓ VSC, DF, Perez sky, closed-formRadiance/DIALux/ClimateStudio ray-traced runs, minutes–hours/iteration
Native BIM geometry ingestion✓ OBJ / glTF / IFC directly, no convert stepUsually needs IfcOpenShell or a manual glTF export first
Programmatic / bulk API access✓ plain GET endpoints, usage-basedMost competitors are single-query consumer apps or desktop tools, seat-licensed
Render/compute cost under correlated demandclosed-form, µs–ms, flatrender engines: 68–477 sec/frame (Arnold), ~72 sec/frame (V-Ray)
Honest limit: the whole of Sun Director, Moon Director, and Star Atlas — plus seven of the eleven Architectural Daylighting verbs — are wired onto the HTTP gateway today; each section above marks exactly which calls are live and which are shown as verified samples. Nothing on this page is a fabricated number: every sample is a real transcript, and the four daylighting verbs with no captured transcript or gateway route yet (3D-scene VSC, EPW hour lookup, the sDA/ASE annual harness, and BIM mesh ingestion) are listed as schema-only capabilities rather than invented.
Who this is for

One buyer, four problems

Film & photo production planning

Golden hour, moon phase, and star visibility for the same shoot day, from purpose-built APIs instead of unrelated tools.

Drone & aerial mission planning

Autonomous flight windows keyed to sun altitude bands or moonlight levels, solved in closed form instead of scheduled by hand.

Architecture, archviz & daylighting compliance

Daylighting studies, henge-bearing checks against a facade, right-to-light VSC/DF numbers, and annual sDA/ASE runs against real IFC/glTF/OBJ building models — without waiting on a render.

Event & landmark photography

Sun-henge and moon-henge dates down a street or through a landmark, plus staging checks for blinding/backlight at a venue.

Astrophotography & night production

True-dark windows, moonlight interference, and imaging-window solving for a target, all from the same date and place.

Planning-application daylighting reports

Vertical Sky Component, Average Daylight Factor, and LEED v4 / EN 17037 sDA/ASE numbers for a proposed obstruction, computed against the actual submitted BIM model.

Docs

Example requests

GET /v1/sun/golden?year=2026&month=7&day=6&lat=34.0522&lon=-118.2437
{
  "ok": true,
  "fields": {
    "golden_hour_morning": "06:12–06:47",
    "golden_hour_evening": "19:38–20:13",
    "blue_hour_morning": "05:41–06:12",
    "blue_hour_evening": "20:13–20:44"
  },
  "raw": "GH_AM_START 6.20, GH_AM_END 6.78, GH_PM_START 19.63, GH_PM_END 20.22"
}
GET /v1/aec/vsc?sky_type=overcast&window_az_deg=180&window_tilt_deg=90&ext_reflectance=0&n_samples=4096
{
  "ok": true,
  "fields": {
    "vsc_percent": "28.23%",
    "sky": "overcast",
    "window_tilt_deg": "90° (vertical window)",
    "samples": "4,096 hemisphere rays, 1,423 open"
  },
  "raw": "vsc_percent=28.2303 sky=overcast window_az_deg=180.0000 window_tilt_deg=90.0000 ext_reflectance=0.0000 n_samples=4096 n_open=1423 compute_us=5175"
}
Pricing

Pay for calls, not seats

Starter
$0 / mo
  • 1,000 calls / month
  • Golden hour, horizon, sun track, moonlight, catalog + visibility lookups
  • Community support
Get started
Scale
Custom
  • Volume pricing
  • Dedicated throughput
  • Direct engineering support
Talk to us

Ready to plan a shoot — or a daylighting report?

No signup required to try any playground above.

Try it live
FAQ

Common questions

Are these four APIs actually one engine, or separate products?+
Separate products, sold independently, that happen to share this one page because they solve related planning problems for the same buyer. Sun Director, Moon Director, Star Atlas, and Architectural Daylighting each have their own verbs, pricing, and roadmap.
What does "inverse" mean here?+
A forward query asks "where is the sun at 8 a.m.?" An inverse query asks "when does the sun sit at 15°, low and warm, for at least 20 minutes?" Seven verbs across Sun Director and Moon Director solve the inverse direction directly, in closed form, instead of leaving you to scan a timeline or calendar by hand.
What's the difference between VSC and Daylight Factor?+
Vertical Sky Component (VSC) is the visible-sky fraction reaching a vertical window — the core BRE/BS 8206-2 right-to-light number. Daylight Factor is the fuller room-average figure: it takes the sky component, adds the externally-obstructed-sky term, and divides through by the internal inter-reflection closure (the Lynes 1/(1-R²) formula) to give a single room-level percentage against the 2%-adequate / 5%-well-daylit thresholds.
Is the daylighting engine a certified Radiance/LM-83 replacement?+
No, and we say so directly: it's a daylight-coefficient model (closed-form hemisphere integrals, the published Lynes and Perez formulas, and an orbit_sat-cached annual harness), not a validated ray-traced Radiance run. It omits ground-reflected light and treats the internally-reflected component as a uniform room-level addition rather than a per-point bounce. See the honesty line in the Architectural Daylighting proof section for the full list of what is and isn't modelled.
What building file formats does the daylighting engine read?+
Wavefront OBJ, binary glTF (.glb), and native IFC (ISO 10303-21 STEP) — including IFC4 tessellated geometry, IFC2x3 explicit B-rep, parametric extruded/revolved solids, and boolean half-space clipping. No offline IfcOpenShell or glTF-conversion step is required.
Do you report colour temperature for a shoot?+
Yes — Sun Director's Light Quality verb returns CCT in Kelvin and CIE-1931 chromaticity, and every reply names the model it used (bird1986_clearsky+cie1931+hernandez_andres1999) so colour-critical pipelines can cite it directly.
Why lux instead of just moon illumination percentage?+
Illumination percentage alone doesn't tell you how much light actually reaches the ground — a 90%-illuminated moon at 4° altitude throws far less usable light than the same moon at 40°, because of airmass extinction. Moon Director's ground illuminance figure accounts for that.
Which verbs are live on the gateway right now?+
All of Sun Director (27 verbs), all of Moon Director (7), all of Star Atlas (9), and seven of Architectural Daylighting's eleven verbs. Every "Live" tab on this page is a real call against the running engine, not a canned sample. The four Architectural Daylighting verbs still shown as samples only (3D-scene VSC, EPW/TMY3 hour lookup, the annual sDA/ASE harness, and BIM mesh ingestion) are built and documented in the engine but don't have a gateway route or a captured transcript yet.