Skip to main content
All projects

Client Work·2026·Web App · Data Science · 3D

AstroTrack3D

A read-only web workspace for the 40 m Thai National Radio Telescope: live state, observation analysis and planning in one place

AstroTrack3D
Role
Full-stack Developer (internship)
Client
NARIT — National Astronomical Research Institute of Thailand (TNRT)
Team
Working with the TNRT/TNRO team
Duration
Jun – Oct 2026 (ongoing)
Year
2026

Key figures

1,700+
commits in 4 months (Jun–Oct 2026)
2,500+
test cases (Python + TypeScript)
189
API endpoints (HTTP + WebSocket)
11
telescope subsystems monitored
57
screens in the web app
88 · 12
alert rules · Grafana dashboards

AstroTrack3D is a web application I built for NARIT around the 40 m Thai National Radio Telescope (TNRT). It brings live state from the antenna control unit (ACU), recorded MBFITS observations, EDD/TCS data-path status and planning tools into a single view over a 3D scene of the telescope, so operators, astronomers and engineers look at the same picture. It covers the whole observation: before (what to observe and when), during (where the telescope points, which scan it is running, whether the backend is ready, whether the file just written is usable) and after (analysing the files and producing PDF reports). It is read-only by design, so it adds no risk to the instrument.

The problem

  1. 01Operators, astronomers and engineers all need the same answers: where is the telescope pointing, are the subsystems healthy, and is the recorded data any good?
  2. 02The information comes from sources that look nothing alike — live ACU telemetry, recorded MBFITS files and the status of the EDD/TCS data path.
  3. 03Planning an observation means weighing elevation, the Sun and satellites at the same time.
  4. 04During a session nobody knew straight away whether the file just written was usable, how well the telescope pointed or whether the backend had stalled, until the files were opened later.

The approach

  1. 01Ingest telemetry over ZeroMQ and decode it per the ICD into 11 subsystem pages — pointing and tracking, axes and drives, optical beam path, M1, hexapod, safety, calibration and more.
  2. 02A Three.js scene shows the dish, beam, sky, Milky Way and solar system so the pointing context is clear at a glance.
  3. 03A single-screen operations dashboard: the beam in the 3D scene, all 8 drives, the light path, pointing model, weather and the event log.
  4. 04Automatic scan-pattern detection (RASTER, CROSS, ON_SOURCE) from telemetry alone, with a confidence score and a motion timeline.
  5. 05Backend Services pages for the EDD and TCS: the scan-cycle state machine, the signal path from digitizer to file, every pipeline, and alerts when something sits too long.
  6. 06A Realtime File Monitor: each finished MBFITS file is plotted over WebSocket the moment it is written, with Sky Geometry (where the antenna pointed through the session), Pointing Quality, a Skyline survey and one-click PDF reports.
  7. 07An MBFITS toolset for CROSS, RASTER and ON_SOURCE scans: scan quality control, beam fits, beam maps, spectra, raw-stream inspection, RFI flagging and a 4D explorer.
  8. 08A year / month / week / day planner that computes observable windows, with Sun warnings and avoidance catalogues.
  9. 09Full observability — Prometheus, Grafana, Loki and Alertmanager — with runbooks, plus a Mock Lab for experimenting without touching the real telescope.

The result

  1. 01Live state, data inspection and planning live in one web app instead of several tools.
  2. 02Every displayed value carries its source and time; values that cannot be computed show “unknown” rather than a guess.
  3. 03During a session the team sees the result of each scan as soon as its file is written, instead of opening files afterwards.
  4. 0450 pages of Thai documentation, 11 runbooks and 2,500+ tests let the team maintain it without me.

Deliverables

  • 3D monitoring web app (React + Three.js), 57 screens
  • Operations dashboard and telescope subsystem pages
  • Backend Services pages for the EDD/TCS
  • Realtime File Monitor with Sky Geometry, Skyline and PDF reports
  • Automatic scan-pattern detection
  • MBFITS analysis tools
  • Observation planner and source catalogue
  • Mock Lab for risk-free experiments
  • Monitoring, alerting and runbooks
  • 50-page Thai user guide and wiki

Retrospective

Challenges

  • Telescope safety: read-only by design with no command path to ACU/TCS, and the Mock Lab kept strictly separate from the real system.
  • Real data is never perfect, so uncertainty and provenance have to be shown honestly.
  • Fast growth (1,700+ commits in 4 months) demanded tests, CI gates and documentation verified against the code.

Learnings

  • Learning the radio-astronomy domain (coordinate systems, beams, MBFITS) fast enough to build tools astronomers actually use.
  • Designing for observability from day one: metrics, logs, audit trails and runbooks.
  • Writing documentation that is checked against the code so it cannot silently go stale.

Interested in work like this?

Tell me about your brief — I reply within 24 hours.

Start a conversation