Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ManiFed/TTN/llms.txt

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

The Telescope Net’s science program is built around one central insight: a distributed network of small, autonomous telescopes can provide something professional facilities cannot — continuous, 24-hour multi-longitude coverage of bright transients and variable stars, at cadences that keep pace with the rapid evolution of events as they unfold. Every target in the queue has been evaluated against a composite scoring formula, and every measurement the network produces must pass a set of quality gates before it is submitted to AAVSO. This page explains both.

Primary Science Program: Bright Transient Follow-up

The highest-priority targets are bright transient events in progress. These are targets where dense, timely light curves have the greatest scientific value — where missing a night genuinely degrades the science.
  • Classical novae (typical peak magnitude 4–12): novae evolve on timescales of days, and their light curves constrain the mass of the white dwarf and the ejected shell. The Telescope Net’s Tier 1 Seestar nodes are well-suited to novae at peak because they are bright enough to achieve high SNR without long exposures.
  • Supernovae in nearby galaxies (magnitude 10–16 at peak): early multi-band photometry of supernovae constrains shock breakout physics and progenitor models. Type Ia light curves are used as cosmological distance indicators; their plateau shapes must be sampled densely.
  • Cataclysmic variable (CV) outbursts (magnitude 10–15 in outburst): CVs brighten by 5–9 magnitudes in hours. Catching the rise, peak, and decline is essential for understanding the accretion disk instability mechanism.
  • AGN flares (magnitude 12–15): active galactic nuclei occasionally brighten dramatically. Long-baseline photometry from a distributed network provides context that single-observatory campaigns cannot.

Secondary Science Program: Variable Star Monitoring

When no high-priority transients are available, nodes observe a curated list of long-term variable star monitoring targets. These form the steady-state filling program that keeps every node productive on every clear night.
  • Long-period variables (Miras, semi-regulars): period–luminosity relations require dense light curves spanning full cycles of 100–600 days.
  • Eclipsing binaries: precise eclipse timing constrains orbital period changes, mass transfer, and the presence of third bodies.
  • Cataclysmic variables in quiescence: quiescent CVs provide the baseline against which outburst properties are measured. Continuous monitoring is needed to catch the onset of outbursts.
  • Be stars: Be stars exhibit episodic outbursts associated with equatorial disk formation. Early detection requires monitoring cadences of days to weeks.
  • Active galactic nuclei: long-term AGN baselines from citizen networks complement professional spectroscopic campaigns.
When no high-priority transient or variable star target is schedulable from a given node, the scheduler falls back to the AAVSO permanent monitoring list — a curated set of historically significant variables that AAVSO requests continuous coverage for, including SS Cyg, U Gem, Z Cam, RS Oph, T CrB, and others.

Alert Sources

The cloud server polls six public astronomical alert streams every 60 minutes and cross-matches new candidates against the existing target database within a 3 arcsecond matching radius. Sources that report the same transient are merged into a single target record.
SourceTypeWhat It Provides
ALeRCEZTF transient brokerRecent bright transients with SN-like classification; probability-ranked candidates from the ZTF alert stream
ATLASATLAS transient server (QUB)Independently discovered transients from the ATLAS sky survey; token-authenticated JSON feed
ASAS-SNASAS-SN Sky Patrol v2All-sky automated survey transients; strong coverage of CV outbursts and supernovae
AAVSOVSX “targets of interest”Long-term variable star watch list via the VSX API; these targets never expire from the queue
GaiaGaia Photometric Science AlertsPublic CSV of all Gaia alerts; covers transients identified in Gaia’s continuous all-sky photometry
TNSTransient Name ServerOfficial IAU transient registry; requires a free bot account for API access
AAVSO targets are the only source that never expire. All other transient targets are automatically deactivated if no alert source refreshes them within 45 days (configurable via alerts.expire_days in cloud/config.yaml).

Composite Scoring Formula

Every active target is scored against every active node at least once per hour. The resulting score determines which targets appear in each node’s nightly plan and in what order. The scoring formula has six components, each normalised to 0–1.
Score = w_brightness · brightness_match
      + w_science    · scientific_value
      + w_time       · time_criticality
      + w_coverage   · coverage_gap
      + w_observe    · observability
      + w_roi        · science_roi
The default composite weights are:
ComponentDefault WeightWhat It Measures
brightness_match0.20How well the target’s current magnitude fits inside the node’s bright and faint limits
scientific_value0.25Baseline priority of the target type (see table below)
time_criticality0.15Urgency — fresh transients score 1.0 on day 0, decaying exponentially with a 12-day half-life
coverage_gap0.15Blend of short-term recency (40%) and historical neglect weighted by science priority (60%)
observability0.25Composite of altitude, weather, moon, light pollution, visibility window, and telescope match
science_roi0.10Empirical yield from recent network outcomes — accepted AAVSO data, cadence gap closures, timely coverage of critical windows
The final score for a (target, node) pair is further multiplied by the node’s reliability score to prefer nodes with proven track records over untested ones:
total_score = theoretical_score × (0.5 + 0.5 × reliability_score)
A target that is not observable from a node tonight (below the minimum altitude for the entire night) always scores zero, regardless of how high its other components are.

Scientific Value by Target Type

The scientific_value component uses a fixed priority baseline per target class, reflecting the relative value of observations that a small network of Seestar telescopes can contribute to professional astronomy.
Target TypeCodeScientific ValueRationale
Classical novaNOVA0.90Early light curves are high-value; Seestar magnitude range ideal
SupernovaSN0.95Early light curves are gold; Type Ia cosmological standard candles
Tidal disruption eventTDE0.90Rare, scientifically rich; rapid multi-night follow-up critical
Gamma-ray burst optical afterglowGRB0.90Extremely time-critical; any data within hours is valuable
Exoplanet transitEXOPLANET0.85Transit timing windows are time-critical and publishable
CV outburstCV0.80Outburst rise and decline are scientifically important
Eclipsing binaryEB0.55Eclipse timing is valuable on a fixed schedule
Young stellar objectYSO0.55Irregular variability; useful for long-baseline monitoring
AGNAGN0.50Long-term baseline monitoring; lower urgency
Generic variableVAR0.50Catch-all; lower priority than named programs
Unknown0.40Minimal allocation until classification improves

Time Criticality Decay

Time-critical targets (those with time_critical = True in the database) receive a time criticality score that starts at 1.0 on the day of discovery and decays exponentially, with a floor of 0.3 to ensure they remain in the queue even after the acute phase has passed.
# time_critical = True
score = max(0.3, 1.0 * exp(-age_days / 12.0))

# time_critical = False (long-period variables, eclipsing binaries)
score = 0.2  # fixed baseline
The decay scale of 12 days means a nova discovered today scores 1.0, the same nova after one week scores ~0.56, and after three weeks scores ~0.17 (floored to 0.30). This prioritises fresh transients without permanently demoting slower-evolving targets.
Object ClassCharacteristic TimescaleScheduling Implication
KilonovaHoursRequires interrupt mechanism; very few hours of opportunity
GRB afterglowHours to daysInterrupt priority; first night critical
Nova at peakDaysHigh priority for first 2–3 weeks after discovery
SupernovaDays to weeksSustained high priority for 3–6 weeks
CV outburstDaysHigh priority while in outburst
Mira at maximumWeeksModerate priority; predictable schedule
Eclipsing binaryFixed scheduleCadence-driven; not time-critical between eclipses

Observability Requirements

The observability component of the score is itself a weighted blend of six sub-factors. Each sub-factor is normalised to 0–1; the blend is normalised by the sum of sub-weights so that the total always stays in the 0–1 range.
observability = (
    w["light_pollution"] * light_pollution_factor  +
    w["weather"]         * weather_factor           +
    w["moon"]            * moon_factor              +
    w["airmass"]         * airmass_factor           +
    w["window"]          * window_factor            +
    w["telescope"]       * telescope_match
) / sum(w.values())
Default observability sub-weights:
Sub-FactorDefault WeightWhat It Measures
weather0.25Clear-sky fraction + seeing quality + atmospheric transparency over the coming night
light_pollution0.20Sky brightness (MPSAS) penalty scaled by how faint the target is relative to the node’s magnitude limit
moon0.15Lunar illumination × proximity penalty; < 10° separation scores 0.05
airmass0.15Best achievable airmass for the target from this node tonight (X=1 → 1.0, X=3 → 0)
window0.15Fraction of the night the target is visible above the minimum altitude; ≥4 hours = 1.0
telescope0.10Hardware capability match — aperture, field of view, and filter set suitability for the target class
Hard requirements that override the score:
  • Target must clear the node’s minimum altitude (default 25°, configurable per node) at some point during the night, or the score is forced to zero.
  • The node’s horizon_mask (a JSON polygon of local obstructions) is respected — targets behind trees or buildings are never scheduled, regardless of their computed altitude.
  • Moon distance must be above 30° for a target to receive a non-negligible moon factor.
These sub-weights are tunable. When tuning.enabled: true in cloud/config.yaml, a nightly Claude-powered advisory monitor analyses recent observation outcomes and may propose adjustments of up to ±5% per weight per night, subject to audit and rollback.

Quality Control Gates

Before any measurement is included in an AAVSO batch, it must pass four hard quality gates. Measurements that fail any gate are retained in the database with their quality flag for diagnostics but are never submitted.
GateThresholdWhy It Matters
Signal-to-noise ratioSNR > 20Below this threshold, photon noise dominates and the measurement adds more uncertainty than information to the AAVSO record
Photometric uncertaintyUncertainty < 0.3 magAAVSO’s quality ceiling; measurements with larger uncertainties are flagged as poor
Comparison stars≥ 3 starsDifferential photometry requires a minimum ensemble to compute a stable zero-point and detect outlier comparison stars
AirmassAirmass < 3.0At X > 3.0, differential atmospheric extinction between target and comparison stars introduces systematic errors that exceed the photometric precision
Measurements that pass all four gates receive a good or acceptable quality flag and enter the AAVSO submission queue. Borderline cases go to the human review queue.
Measurements with quality_flag = "poor" are never submitted to AAVSO by default. Enabling submit_poor_quality: true in config.yaml overrides this and is not recommended for production nodes.

AAVSO Submission Format

Accepted measurements are submitted to the AAVSO WebObs API in AAVSO Extended File Format. Each batch file contains a header block followed by comma-delimited measurement records.
#TYPE=EXTENDED
#OBSCODE=[member observer code]
#SOFTWARE=The Telescope Net Pipeline v[X]
#DELIM=,
#DATE=BJD
#OBSTYPE=CCD
Fields per measurement record:
FieldDescription
STARIDAAVSO VSX target name (e.g., SS CYG)
DATEBarycentric Julian Date (BJD_TCB)
MAGNITUDECalibrated differential magnitude
MAGERR1σ photometric uncertainty
FILTERFilter code (e.g., CV for unfiltered visual, V, B, R, I)
TRANSFORMEDWhether the measurement has been transformed to the standard system
MTYPEMeasurement type (STD = standard, DIF = differential)
CNAMEComparison star designation
CMAGComparison star magnitude
KNAMECheck star designation
KMAGCheck star magnitude
AMASSAirmass at time of observation
GROUPNode identifier (groups measurements from the same node)
CHARTAAVSO chart ID used for comparison star selection
NOTESPipeline version and any relevant flags

Node Data Model and Reliability Score

The scheduler’s view of each telescope is defined by the nodes table. The most consequential derived value is the reliability_score, a composite 0–1 multiplier that is recomputed nightly from ground-truth outcomes and applied to every (target, node) score pair. Reliability formula (computed in registry.refresh_node_performance()):
reliability = (
    0.40 * aavso_acceptance_rate
  + 0.25 * (1 - outlier_rate)
  + 0.20 * min(1.0, clear_nights_30d / 30)
  + 0.15 * precision_factor
)

precision_factor = max(0, 1 - mean_uncertainty / 0.30)
ReliabilityScore MultiplierMeaning
1.0×1.00Proven node — full score, no penalty
0.5×0.75New or data-sparse node — slight preference for proven peers
0.0×0.50Persistently poor data — still receives some assignments (floor prevents starvation)
New nodes (fewer than 10 observations) start at 0.50 and converge toward their true reliability over roughly 20–30 observations. The formula is intentionally multi-dimensional: a node cannot inflate its score by gaming one metric — it must deliver across AAVSO acceptance rate, cross-validation consistency, operational uptime, and photometric precision simultaneously.

Geographic Strategy for 24-Hour Coverage

Continuous coverage of time-critical targets requires nodes distributed across longitude zones. The Telescope Net targets four zones, each contributing approximately 6–8 hours of primary coverage per night.
ZoneRegionUTC OffsetTarget ShareCoverage Window (UTC)
1Americas−8 to −430%01:00–09:00
2Europe / Africa0 to +330%20:00–04:00
3Asia / Pacific+8 to +1230%11:00–19:00
4Middle East / India+4 to +710%Gap-filling
With this distribution, any target above approximately −60° declination can be observed continuously for 24 hours by a relay of nodes across zones. No bright transient in the northern or equatorial sky is ever more than a few hours away from a node that can observe it.
The scheduler accounts for longitude distribution when assigning targets. It gives soft preference to nodes whose longitude zone provides the best coverage for a target at a given time — helping the network function as a coherent instrument rather than a collection of independent telescopes.

Build docs developers (and LLMs) love