Finding Planets · a bookSearchlearn.xhelio.ai
Part V · Below the noise: stacking · Chapter 18

Synthetic and digital tracking: stacking at the speed of near-Earth objects

Shift-and-stack rebuilt for fast movers: second-scale exposures from low-noise cameras, tens of thousands of trial velocities, and GPUs that keep up with the sky. The chapter follows the two lineages that made it work, Shao and Zhai's synthetic tracking for near-Earth objects and Heinze, Metchev and Trollo's large-format digital tracking for faint main-belt asteroids, and shows that their limits are set as much by read noise, curvature, artifacts and memory traffic as by photons.

On the night of 11 September 2013, a camera on the 200-inch Hale telescope at Palomar was scanning the sky at five arcseconds per second, sixteen times a second, in long narrow strips. A given star stayed in the small field of view for about thirty seconds. Somewhere in one of those half-minute data cubes a faint object was crossing at 5.97 degrees per day, smearing about seven arcseconds across the field during the thirty seconds it was visible. No single frame showed it. After the frames were shifted along the right velocity and summed, it appeared at a signal-to-noise ratio of about 15 and a magnitude of 23.1±0.123.1\pm0.1. Seventy-seven minutes later the next scan over the same strip found it again, at the same brightness and the same rate (Zhai et al. 2014).

Chengxing Zhai, Michael Shao and their colleagues did not claim a discovery. An official discovery needs at least three epochs, and they had two, on one night, with no orbit. What they had demonstrated was that a near-Earth object (NEO) moving fast enough to trail badly in any conventional exposure could be detected, from thirty seconds of data, at a depth that would otherwise need a long exposure that the motion forbids. The authors’ own restraint is the right boundary for the history: a blind detection with repeat confirmation, not a catalogued asteroid.

Chapter 17 told the story of shift-and-stack for slow, distant bodies, where exposures of minutes are short enough and the hard part is the number of trajectories. This chapter is about the regime where the body moves so fast that the exposure itself must shrink to seconds or less, so that detector noise, data rate and the curvature of the path become the constraints. The same mathematics applies. The engineering changes.

Two names, one idea

The literature uses two names for overlapping methods. Michael Shao, Chengxing Zhai and collaborators at the Jet Propulsion Laboratory say synthetic tracking, and their emphasis is fast cameras, GPU searches, fast NEOs and precise astrometry. Aren Heinze, Stanimir Metchev and Joseph Trollo say digital tracking, and their emphasis is large CCD mosaics, longer integrations, robust median stacks and statistical surveys of faint main-belt asteroids (MBAs). Both are blind trajectory-aligned image integration, and both groups acknowledge the Kuiper-belt searches that came first (Shao et al. 2014; Heinze et al. 2015). “Blind search over unknown velocities” does not by itself distinguish them from the 1990s work, which also searched unknown velocities. What distinguishes them is the range of velocities and how that range was made affordable.

The scale of the change is clear from the apparent rates. Whidden et al. quote typical opposition rates of about 20 arcseconds per hour for main-belt asteroids at 3 au and about one arcsecond per hour for trans-Neptunian objects (Whidden et al. 2019). A close NEO can move degrees per day, as the Palomar object did, which is about 900 arcseconds per hour. A body at that rate crosses a 1-arcsecond seeing disk in four seconds. To keep it pointlike, each exposure must be a few seconds long or shorter, and an hour of data becomes a thousand frames.

Optical stacking adds intensities, not electromagnetic phases. When this literature calls the accumulation “coherent”, it means the images are aligned in position, not that a wave phase is tracked, and the analogy with radar track-before-detect (Chapter 37) is about the search structure, not about interferometry.

The physics of a short exposure

Signal, noise and read noise

Let exposure ii have background-subtracted data Di(p)D_i(\mathbf p) at pixel p\mathbf p, taken at mid-time tit_i, and let a point source of constant flux ff move on a straight track

ri=r0+v (ti−t0),Di(p)=f qi Pi(p−ri)+ni(p),\mathbf r_i=\mathbf r_0+\mathbf v\,(t_i-t_0),\qquad D_i(\mathbf p)=f\,q_i\,P_i(\mathbf p-\mathbf r_i)+n_i(\mathbf p),

where PiP_i is a unit-integral PSF that includes the trail within the exposure, qiq_i is throughput times exposure duration, and nin_i is noise. For a faint source on a CCD or CMOS detector, the pixel variance in electrons is approximately

Vi(p)=Bi(p)+di(p) Δti+σR,i2(p),V_i(\mathbf p)=B_i(\mathbf p)+d_i(\mathbf p)\,\Delta t_i+\sigma_{R,i}^2(\mathbf p),

the sum of sky background BiB_i, dark current did_i times exposure time Δti\Delta t_i, and the square of the read noise σR\sigma_R. The first two grow with exposure time, and the third is paid once per frame, however short the frame. This is the crux. Split a total live time TT into NN exposures of Δt=T/N\Delta t=T/N, with source rate ff, background-plus-dark rate bb per pixel and an effective noise area neffn_{\rm eff} (equal to 4πσg24\pi\sigma_g^2 for a well-sampled Gaussian PSF of width σg\sigma_g pixels). Then

SNR≃fTneff (bT+NσR2).\mathrm{SNR}\simeq\frac{fT}{\sqrt{n_{\rm eff}\,\big(bT+N\sigma_R^2\big)}} .

The familiar T\sqrt T gain survives splitting only while NσR2N\sigma_R^2 is small compared with bTbT. Define the read-noise time τR=σR2/b\tau_R=\sigma_R^2/b, the exposure length at which one read costs as much as the sky. The sensitivity factor relative to a noiseless detector is (1+τR/Δt)−1/2(1+\tau_R/\Delta t)^{-1/2} (Zhai et al. 2024).

This is why synthetic tracking had to wait for detectors. A conventional scientific CCD with several electrons of read noise and readout times of tens of seconds makes thousand-frame cubes impossible or ruinous. Electron-multiplying CCDs (EMCCDs) and then scientific CMOS (sCMOS) sensors brought effective read noise to one or two electrons at high frame rates. For JPL’s Table Mountain system the reported τR\tau_R is below about 0.3 second, and for a small Rowe–Ackermann Schmidt astrograph (RASA) with a commercial CMOS sensor, about 0.34 second. At Δt=5\Delta t = 5 s and τR=0.34\tau_R=0.34 s the read-noise factor is (1.068)−1/2≈0.97(1.068)^{-1/2}\approx0.97, a three per cent loss. At Δt=0.1\Delta t=0.1 s it would be 0.48, a loss of more than half the signal-to-noise ratio. Shao and colleagues named read noise and computation as the two obstacles that had kept the older idea from becoming a fast-NEO observing system (Shao et al. 2014).

An electron-multiplying detector has its own calibrated noise model (multiplication adds excess noise), and resampling or reference subtraction can correlate pixels and frames. Independence is an operating approximation, not a detector property.

Trailing within each exposure

Shifting whole frames cannot undo the trail inside each frame. For a point-source matched filter applied to a Gaussian PSF trailed linearly by a length L=∣v∣ΔtL=\lvert\mathbf v\rvert\Delta t, Zhai et al. derive the retained response

RTL(L)=∫01exp⁡ ⁣[−u2(L4σg)2]du=π2s erf⁡(s),s=L4σg.R_{\rm TL}(L)=\int_0^1\exp\!\left[-u^2\left(\frac{L}{4\sigma_g}\right)^2\right]du =\frac{\sqrt\pi}{2s}\,\operatorname{erf}(s),\qquad s=\frac{L}{4\sigma_g}.

A trail of one FWHM (L=2.355σgL=2.355\sigma_g, s≈0.59s\approx0.59) keeps about 90% of the point-filter response, and the paper uses an 11 to 12% loss as a practical rule. Putting the two effects together,

S(Δt,v)=(1+τRΔt)−1/2RTL(v Δt),S(\Delta t,v)=\left(1+\frac{\tau_R}{\Delta t}\right)^{-1/2}R_{\rm TL}(v\,\Delta t),

which has a maximum: too short and the read noise wins, too long and the trail wins.

00.20.40.60.810.1110100Exposure duration Δt (s, log scale)Relative SNR at fixed live time (0.1, 0.4767) (0.3, 0.6847) (1, 0.8639) (3, 0.9477) (5, 0.9676) (10, 0.9834) (30, 0.9944) (0.1, 0.4767) (0.3, 0.6846) (1, 0.8638) (3, 0.9466) (5, 0.9645) (10, 0.9709) (30, 0.8905) (0.1, 0.4767) (0.3, 0.6846) (1, 0.8629) (3, 0.938) (5, 0.9404) (10, 0.8807) (30, 0.4927) (0.1, 0.4767) (0.3, 0.6844) (1, 0.8599) (3, 0.9098) (5, 0.8666) (10, 0.6692) (30, 0.2495)0 arcsec/s0.1 arcsec/s0.3 arcsec/s0.6 arcsec/s
Why synthetic tracking uses second-scale exposures. Relative point-source sensitivity at fixed total live time as a function of the length of each exposure, for four apparent rates. Short exposures lose to accumulated read noise (left), long ones to trailing within each frame (right). Model: S = (1 + τR/Δt)^(-1/2) · R_TL(vΔt) with τR = 0.34 s and a 3-arcsecond FWHM PSF, the values of Zhai et al.'s small-RASA example. These are analytic model estimates at chosen plotting points, not measured completeness. Source: Model evaluated from Zhai et al. 2024, arXiv:2401.03255 §2.2.1 and Appendix A (values compiled for this book).

For a body moving 0.3 arcsecond per second (about 18 arcminutes per hour, a nearby NEO) with a 3-arcsecond FWHM, the curve peaks near 3 to 5 seconds, close to the five-second frames the RASA system uses. For a body at 0.6 arcsecond per second the best exposure is shorter and the best achievable sensitivity is lower. A slow main-belt asteroid is happy with minutes, which is why Heinze’s lineage works with conventional two-minute CCD exposures.

A common confusion deserves a sentence. The point-filter response RTLR_{\rm TL} is not the best one can do with a single trailed image. A matched filter shaped like the streak integrates along the trail and recovers part of the loss (Chapter 11), but it also integrates more sky. For one long exposure in which the trail grows with duration, the background-limited streak SNR tends to a duration-independent value, whereas aligned short exposures keep gaining roughly as T\sqrt T until curvature or field crossing stops them (Shao et al. 2014; Heinze et al. 2015). The large gains quoted for synthetic tracking are usually relative to conventional point-source detection and frame-by-frame linking, not to an optimized streak filter plus stacking.

How much fainter?

At equal thresholds, stacking NN untrailed equal exposures gains 1.25log⁡10N1.25\log_{10}N magnitudes. A blind search over many velocities needs a higher threshold than one image does. If the stack needs zbz_b and a single exposure z1z_1,

Δm=1.25log⁡10N−2.5log⁡10zbz1.\Delta m = 1.25\log_{10}N-2.5\log_{10}\frac{z_b}{z_1}.

With 100 exposures, z1=5z_1=5 and zb=7.5z_b=7.5 (the threshold Zhai’s 2024 survey uses), the gain is 2.5−0.44≈2.12.5-0.44\approx2.1 magnitudes. Heinze, Metchev and Trollo titled their 2015 paper “Digital Tracking Observations Can Discover Asteroids 10 Times Fainter than Conventional Searches”. Ten times fainter is 2.5 magnitudes in flux, which with two-minute frames over a night is plausible on this arithmetic. It is not ten times faster computation, nor necessarily ten times the yield.

The search space

Velocity grids

Let TspanT_{\rm span} be the time between the first and last exposure, which differs from the live time TT whenever there are gaps. A square velocity grid of spacing Δv\Delta v has a worst case at the corner, Δv/2\Delta v/\sqrt2 from the nearest template, which smears a point by TspanΔv/2T_{\rm span}\Delta v/\sqrt2 by the end of the sequence. Requiring the smear to stay below bmax⁡b_{\max} gives Heinze’s spacing rule and the count of velocities over a velocity-space area Av\mathcal A_v (Heinze et al. 2015):

Δv≤2 bmax⁡Tspan,Nv≃Av Tspan22 bmax⁡2.\Delta v\le\frac{\sqrt2\,b_{\max}}{T_{\rm span}},\qquad N_v\simeq\frac{\mathcal A_v\,T_{\rm span}^2}{2\,b_{\max}^2}.

Gaps add no photons but sharpen the velocity requirement. And the corner matters: Zhai’s 2024 example bounds the rate error along each axis so that the smear is at most 3.2 arcseconds, 2.5 pixels, along a row or column over 500 seconds, and quotes a trailing loss below 12%. Along the diagonal the smear is 2\sqrt2 longer, so that 12% is not a proven radial worst case (Zhai et al. 2024).

A better guide than endpoint smear is the loss in the matched-filter response. For a Gaussian PSF and small trajectory errors δri\delta\mathbf r_i, after optimizing the position, the response falls by approximately

1−⟨∣δri−⟨δr⟩∣2⟩w4σg2,1-\frac{\big\langle\lvert\delta\mathbf r_i-\langle\delta\mathbf r\rangle\rvert^2\big\rangle_w}{4\sigma_g^2},

where the average is weighted by each exposure’s information. This derived metric says that the weighted spread of the epochs, not the endpoints, sets the spacing, and it is the natural metric for placing templates (Chapter 38).

Curvature

Straight lines are an approximation. Earth’s rotation, its orbital reflex, perspective and the body’s own acceleration all bend the apparent path. A constant angular acceleration a\mathbf a leaves a best-fit straight-line residual of ∣a∣Tspan2/12\lvert\mathbf a\rvert T_{\rm span}^2/12 for continuous, uniformly weighted observations. Qi Li, Zhai and colleagues use this to define a linear-model timescale Tlimit≃12 FWHM/∣a∣T_{\rm limit}\simeq\sqrt{12\,\mathrm{FWHM}/\lvert\mathbf a\rvert} beyond which the residual exceeds a PSF width (Li et al. 2026). It is a PSF-based heuristic, but it explains why a close object has a short useful integration however many photons remain to be collected. Heinze estimated that useful linear integrations can last all night for MBAs and much less for close NEOs, under stated conditions.

Trials

A search over MM independent standard-normal tests expects M Q(z)M\,Q(z) excursions above zz, where QQ is the Gaussian upper tail. Zhai’s 2014 search took the trials as pixels times velocities, 512×512×100×100≈2.6×109512\times512\times100\times100\approx2.6\times10^9 per 30-second cube, and chose SNR=7\mathrm{SNR}=7 to keep the false-alarm probability below 1%, about 0.34%, per cube. Over twelve hours of data that still predicts about five Gaussian false detections. The paper then adds the observation that matters most: in practice, artifacts from charge leakage and diffraction around bright objects gave most of the false positives (Zhai et al. 2014).

10-40.0111001041061085678Detection threshold z (σ)Expected false excursions (log scale) (5, 177724) (5.5, 11773.5) (6, 611.684) (6.5, 24.8992) (7, 0.793484) (7.5, 0.0197835) (8, 0.0003857) (5, 2.09256e+06) (5.5, 138624) (6, 7202.09) (6.5, 293.168) (7, 9.34263) (7.5, 0.232935) (8, 0.0045413)M = 6.2×10¹¹ (WIYN 2015)M = 7.3×10¹² (DECam 2019, night 1)
The look-elsewhere budget of a blind velocity search. Expected number of pure-Gaussian noise excursions above a threshold, M·Q(z), for two search sizes: Heinze et al.'s 2015 WIYN search (M ≈ 6.2 × 10¹¹ independent PSF-scale tests) and the first DECam night of Heinze et al. 2019 (≈ 7.3 × 10¹²). One false event is expected at about 7.0σ and 7.3σ respectively. The loudest event in the 2019 time-scrambled control search was 7.43σ. These are calculated estimates: real templates are correlated and real artifacts have heavier tails. Source: Trial counts from Heinze et al. 2015, arXiv:1508.01599 §5.2.1, and Heinze et al. 2019, arXiv:1910.13015 §6; Gaussian tails calculated here.

Heinze et al. counted differently and more carefully. Their two-night WIYN search of 224,688 trial stacks covered about 5.6×10125.6\times10^{12} non-overlapping, non-zero pixels, equivalent to 6.2×10116.2\times10^{11} independent 3×33\times3-pixel boxes, each sampling the noise over one PSF. If those were independent and Gaussian, thresholds of 8, 7 and 6 sigma would yield 4×10−44\times10^{-4}, 0.8 and 600 false positives, and correlations between adjacent velocity trials reduce these by at most a factor of two (Heinze et al. 2015). Going from 6σ6\sigma to 7σ7\sigma divides the Gaussian false-positive count by nearly a thousand and costs only 2.5log⁡10(7/6)≈0.172.5\log_{10}(7/6)\approx0.17 magnitude of depth. That asymmetry is why blind searches sit at 7 to 8 sigma.

Scaling

Let PP be the number of origin pixels, NN the number of exposures and NvN_v the number of velocities. Direct summation costs O(P N Nv)O(P\,N\,N_v) samples. At fixed cadence, field and blur tolerance, N∝TN\propto T and Nv∝T2N_v\propto T^2, so the work grows as T3T^3 while the photon-limited SNR grows as T1/2T^{1/2}. Adding a freely searched two-component acceleration grid at fixed displacement tolerance multiplies the count by a factor scaling as T4T^4, so a rectangular blind search over accelerations scales roughly as T7T^7 (an estimate under these assumptions). Matthews and Nguyen state the same direct cost in a special scaling where frames, both image dimensions and both velocity dimensions all grow as nn: O(n5)O(n^5) (Matthews & Nguyen 2026). These exponents are why every synthetic-tracking system works in short cubes and why reusable partial sums, discussed at the end of this chapter, are so attractive.

The fast-camera lineage

Palomar, 2013

Shao, Bijan Nemati, Zhai, Slava Turyshev, Jagmit Sandhu, Gregg Hallinan and Leon Harding set out the case in a paper posted as a preprint in 2013 and published in The Astrophysical Journal in 2014 (Shao et al. 2014). On 3 April 2013 they observed two known asteroids, 2013 FQ10 and 2009 BL2, with the CHIMERA camera on the Hale telescope. For 2013 FQ10, about magnitude 19.2 at roughly 0.12 au and moving about 0.1 arcsecond per second, they recorded 700 half-second frames, 350 seconds in all, at a binned scale of 0.35 arcsecond per pixel. Summed without motion correction, the frames gave a trail. Tracked in software, they gave a compact source with a background-only detection SNR of about 400 (excluding the asteroid’s own photon noise).

The same data showed an advantage that has nothing to do with depth. Differential astrometry against reference stars gave synthetic-tracking residuals of 6.8 and 8.5 milliarcseconds in the two coordinates, against 43 and 79 milliarcseconds from conventional images of the same target. Short frames preserve the time dependence needed to cancel atmospheric and telescope motion against the stars. These were relative residuals on a bright known target, not the absolute accuracy of a faint discovery.

The blind search followed in September 2013 (Zhai et al. 2014). Two Andor iXon3 888 EMCCDs ran at 16.7 Hz at high electron-multiplication gain while the telescope scanned at 5 arcseconds per second, so each source crossed the field in about 30 seconds, and the strips were rescanned for confirmation. The detected object’s distance and size were inferred from an assumed transverse speed and albedo, not from an orbit.

The pipeline

The Shao–Zhai pipeline has four stages: calibrate the frames and estimate the sky; identify and remove stationary sources and defects; search velocities in parallel; and refine survivors with a moving-PSF fit. Two choices make it fast. The PSF matched filter is applied before the velocity search, so no spatial convolution is repeated per trial. And candidate generation uses integer-pixel shift-and-add, with continuous Fourier shifts or a nonlinear moving-PSF fit (MATLAB’s lsqnonlin in 2014) reserved for the few detections that survive.

Written as a likelihood search with explicit coverage bookkeeping, which is how Chapter 17 derives it, the workflow looks like this. It generalizes the published description; it does not reproduce JPL’s code.

read exposure mid-times, gains, masks, calibration frames
calibrate each exposure; estimate sky and per-pixel variance
register the star field, keeping residual frame offsets
build a stationary-source model; subtract and/or mask residuals
for each exposure:
    numerator_map   = PSF correlated with (data / variance)
    information_map = PSF^2 correlated with (1 / variance)
for each velocity, in parallel:
    for each reference pixel, in parallel:
        A = H = 0
        for each exposure:
            r = reference_pixel + velocity * (time - reference_time)
            A += numerator_map[r];  H += information_map[r]
        if H > 0 and A / sqrt(H) > threshold:
            keep local maximum with position and velocity
cluster detections in position and velocity
refit the original cutouts with a continuous moving PSF
test temporal subsets, artifacts and an independent revisit
report astrometry, photometry, uncertainties and coverage

The statistic Z=A/HZ=A/\sqrt H is standard normal under the ideal null for a fixed trajectory, and a masked pixel contributes to neither sum. Heinze’s clipped medians are a robust alternative but are nonlinear, so they do not inherit this calibration and cannot be split into reusable partial sums. A pipeline must choose its statistic explicitly.

The refinement fit estimates position, velocity, flux and background together, referenced to the middle of the sequence to reduce the position–velocity covariance. For a faint Moffat-profile target, Zhai’s approximations are σx≃0.65 FWHM/SNR\sigma_x\simeq0.65\,\mathrm{FWHM}/\mathrm{SNR} for the centroid and σv≃12 σx/T\sigma_v\simeq\sqrt{12}\,\sigma_x/T for the rate, with uniform coverage (Zhai et al. 2014). At SNR 15 and a 1.5-arcsecond FWHM, that is about 65 milliarcseconds in position.

Data cube: N short frames star, faint mover, cosmic ray (×) v = 0 (plain sum) mover trails, lost in sky v = true velocity mover: compact, √N gain v slightly wrong short residual trail Bookkeeping per trial: A = Σ numeratorᵢ(rᵢ), H = Σ informationᵢ(rᵢ), Z = A / √H a masked frame adds to neither A nor H; star residuals become streaks in every v ≠ 0 stack survivors: cluster in (r, v) → moving-PSF fit on original frames → temporal subsets → revisit
Synthetic tracking on one data cube. The same frames summed at three trial velocities: without shifting the mover trails; at the right velocity it is a compact source; at a nearby wrong velocity it is a short trail, which is the behaviour Heinze's motion-check images exploit. Intensities are illustrative, not data. After Shao et al. (2014), Zhai et al. (2014) and Heinze et al. (2015).

The GPU

Synthetic tracking was designed for GPUs from the start, because every velocity is independent. The 2014 implementation ran in C/C++ on an NVIDIA Tesla K20c, a Kepler card with 2,496 cores, 5 GB of memory, a peak of 3.52 TFLOPS and a memory bandwidth of 209 GB/s. A 90-second cube of 1,500 frames of 512×512512\times512 pixels, searched over a 100×100100\times100 velocity grid spanning ±12\pm12 degrees per day in each coordinate, took under 90 seconds on average, and the authors noted that performance was limited by memory bandwidth (Zhai et al. 2014). That workload is 1500×5122×104≈3.9×10121500\times512^2\times10^4\approx3.9\times10^{12} samples, or more than 4.4×10104.4\times10^{10} samples per second. At four bytes per sample with no reuse, that would be about 175 GB/s, close to the card’s 209 GB/s (my estimate, which suggests that the kernel was indeed streaming its input nearly once per sample). The authors also noted that their grid spacing, one pixel per integration time against a PSF of about three pixels, was finer than needed, so a coarser grid would allow real-time processing.

Ten years later the SRO1 survey system ran 100 five-second exposures from a 61-megapixel camera, a cube of 12.2 GB as unsigned 16-bit integers and 24.4 GB in 32-bit floating point, against a 100×100100\times100 velocity grid covering ±0.63\pm0.63 arcsecond per second at 0.0126 arcsecond per second spacing. A single 32-GB Tesla V100 searched the cube in about 440 seconds, less than the 500 seconds of live integration, and again the authors identified memory bandwidth and cache use, not arithmetic, as the limit (Zhai et al. 2024). The workload is 6.1×10136.1\times10^{13} sample visits, about 1.4×10111.4\times10^{11} per second (my estimate). Read at four bytes per visit with no reuse, that would be 555 GB/s. The paper calls the count “FLOPS per data cube”, but it is an operation count, not a rate, and it says nothing about tensor-core utilization.

Table Mountain, SkySat and satellites

Zhai, Shao, Navtej Saini and colleagues moved the method to Pomona College’s 1-m (40-inch) telescope at JPL’s Table Mountain Facility with an Andor Zyla sCMOS camera and the Gaia DR1 catalogue. Bright-target astrometric accuracy approached 10 milliarcseconds with 100-second integrations, and chromatic optical distortion became the limit (Zhai et al. 2018). A companion technical note applied the method to data from SkySat-3, a repurposed Earth-observing satellite with a 35-cm telescope collecting 50-Hz global-shutter frames with about five electrons of read noise. Its raw memory limited a burst to 166 frames, about 3.3 seconds. The known asteroids showed the expected improvement after alignment, but jitter, bias variation and a detector mode optimized for Earth imaging kept theoretical sensitivity from becoming survey performance (Zhai et al. 2018b).

At the 2018 AMOS conference, Shao, Russell Trahan, Zhai, Saini and Turyshev showed the method on a 28-cm RASA with a 16-megapixel CMOS sensor, 1.27-arcsecond pixels and a two-square-degree field (Shao et al. 2018). At 10 Hz the camera produced about 320 MB/s. One NEO example at magnitude 19.0 reached SNR about 24 in 80 five-second frames, and roughly half that in each of four 20-frame subsets, as 4=2\sqrt4=2 predicts. A geostationary-belt example recovered six objects moving at different rates in one cube, including a faint inclined object at a stated 11 photons per second, with 70 to 100 milliarcsecond residuals for four-second measurements. NEO-rate processing already ran in real time, while four GPUs were planned to keep up at satellite rates. These are demonstrations of multi-rate recovery, not a debris catalogue or a completeness surface (Chapter 37).

ZTF’s long dwell

Synthetic tracking does not require a special camera. Zhai, Quanzhi Ye, Shao and colleagues took a Zwicky Transient Facility (ZTF) long dwell, 133 nominal 30-second exposures spanning about 5,200 seconds, and searched 40 quadrants of 3,080×3,0723{,}080\times3{,}072 pixels, each about 0.73 square degree (Zhai et al. 2020). The inputs were ZTF difference images, and residual stellar structure made the spatial noise more troublesome than the temporal noise. The GPU search used a 100×100100\times100 grid over about ±0.75\pm0.75 degree per day with a three-pixel Gaussian filter, and initial thresholds of SNR 10, raised to 15 or 20 in difficult quadrants. Each candidate then had to exceed SNR 5 in at least three of four temporal subsets. The paper reports 1,168 detections, mostly MBAs, with Trojans, Hildas, Hungarias, Phocaeas and known NEOs among them.

Two cautions come with that paper. The manuscript prints a grid spacing of 0.25 pixel per frame, which is inconsistent with its own grid size, range and roughly 40-second cadence, which together imply about 0.025 pixel per frame (an estimate from the published parameters). And the “approximately 23rd magnitude” faint tail is not a completeness limit: the magnitude histogram declines beyond 21, which the authors attribute largely to quadrant-dependent residuals and masking, and there is no injection-derived completeness curve. It is a productive archival demonstration, not an equal-depth benchmark.

An operational NEO survey

By 2024 the JPL group ran a survey at the Sierra Remote Observatory: SRO1, three 11-inch RASAs with 9,576×6,3889{,}576\times6{,}388 CMOS sensors, read noise of one to two electrons and fields of about 2.2×3.32.2\times3.3 degrees each, and SRO2, a 14-inch RASA for follow-up (Zhai et al. 2024). The nominal survey takes five-second exposures in 100-frame cubes, revisits about 45 minutes apart, covers about 300 square degrees per night, and reaches near magnitude 20.5 on clear dark nights. The paper reports 61 new NEOs since 2018. Those are program reports, not an injection-calibrated completeness function over rate and brightness, but they are actual discoveries from small commercial telescopes.

The paper is equally valuable for its timing details. On a rolling-shutter CMOS, rows are read 19.6 microseconds apart, so the epoch varies down the frame, and testing found an extra 50-millisecond trigger delay on the first frame. After calibration the stated timing accuracy was better than 10 milliseconds. A timing error δt\delta t becomes an along-track astrometric error δθ=v δt\delta\theta=v\,\delta t. At one arcsecond per second, 10 milliseconds is 10 milliarcseconds, the whole astrometric budget of the bright-target work (a derived example). Removing masked frames asymmetrically shifts the effective epoch, too. The observed-minus-ephemeris residuals of the survey’s NEO astrometry have an RMS of about 130 milliarcseconds, which includes the uncertainty of short-arc ephemerides and is very different from the internal precision of a bright target.

The large-format lineage

WIYN, 2013

Heinze’s group took the opposite engineering path: conventional large CCD mosaics, two-minute exposures, and a statistically characterized survey (Heinze et al. 2015). On 19 and 20 April 2013 they observed a field near opposition with the WIYN 0.9-m telescope and its MOSAIC camera at Kitt Peak: a 59′×59′59'\times59' field, 0.43-arcsecond pixels and a 22-second readout. They chose a relatively sparse spring star field and dithered to fill the detector gaps and decorrelate defects. After quality cuts, the two nights’ sequences had 126 and 130 exposures, each spanning 5.76 hours.

Each night was remapped onto 12,000×12,00012{,}000\times12{,}000-pixel images at 0.4 arcsecond per pixel. Stationary sources were subtracted using nonnegative combinations of low-noise stacks of other exposures, chosen far enough apart in time not to subtract the target asteroids. The search covered eastward rates of −50-50 to −20-20 arcseconds per hour and northward rates of −7-7 to +30+30 on a 0.20-arcsecond-per-hour grid, 28,086 velocity vectors. The 64-GB workstation could not hold a full night, so each night was processed in four overlapping quadrants, 112,344 trial stacks per night. Each trial stack used nearest-neighbour shifts and a median with five-sigma clipping, was smoothed with a small boxcar, searched against a local noise estimate, and discarded.

Heinze introduced a useful unit, the vector-pixel: one input-image pixel contributing to one velocity trial. The two-night search was 1.035×10151.035\times10^{15} vector-pixels (1.44×1081.44\times10^8 pixels per image, times 256 images, times 28,086 vectors). A 32-core desktop processed about 8.1×10118.1\times10^{11} vector-pixels per hour, so the search took about 50 days. Median selection, clipping and detection are much more expensive per sample than an addition, so this number cannot be compared directly with a GPU sum, but it is an honest measured scale. The result was 215 distinct asteroids, 59 known and 156 previously unknown in these data, confirmed as faint as R=23.4R=23.4. Some had been independently discovered while the analysis was under way, so “unknown in these data” and discovery credit are not the same. The authors did not measure a rigorous completeness limit, and inferred a value near R=23.0R=23.0 from number counts.

Pyramids and motion checks

Heinze’s group built two kinds of verification image that remain good practice. A motion-check image surrounds a candidate’s stack with stacks at neighbouring trial velocities: a real point source is sharp in the centre and trails in a predictable direction and amount in the neighbours, while a noise spike or artifact does not. A pyramid image divides the data into two, three, four and more temporal subsets and shows the candidate in each. The published criterion asks for a convincing appearance in at least two tiles of one layer, which tolerates changing brightness and partial coverage. Both are verification after detection, not a hierarchical speedup, and both make a reviewer’s decision depend on physics rather than on a single number. They also show a trade the group discussed openly: merging nearby detections reduces the review load but can swallow a faint object near a brighter one (Heinze et al. 2015).

DECam, 2019

The definitive paper of this lineage used two nights of DECam data from 2014, 30 and 31 March (Heinze et al. 2019). The nights had 123 and 202 accepted 90-second exposures, spanning 7.67 and 7.30 hours, searched with 41,356 and 26,533 trial velocities. To make the search feasible on nodes with 128 GB of memory, the images were binned two by two (the 1.1-arcsecond seeing still left good sampling) and stored at half precision, a choice the authors adopted only after careful testing and which produced edge artifacts whose cause they could not identify. The code measured about 1.3×10121.3\times10^{12} vector-pixels per hour per 24-core node. The real-data search took about 80 node-days, and with a time-scrambled search and an injected-object search the total was about 240 node-days.

The controls are the strongest statistical validation in this whole literature. In the time-scrambling experiment, the real images, with all their artifacts, were searched again with their timestamps randomized, so that no real asteroid could line up while every noise property was preserved. The loudest surviving scrambled candidates were 7.43 and 7.28 sigma, and those became the detection thresholds. For comparison, the threshold at which one Gaussian false event is expected, given about 7.3×10127.3\times10^{12} and 4.7×10124.7\times10^{12} PSF-scale noise realizations, is 7.31 and 7.25 sigma. The agreement says that, after artifact removal, the noise behaved almost like the Gaussian model. One scrambled realization is not a precise measurement of a tiny false-alarm probability, but it is the right kind of evidence.

Injected moving sources, passed through the same processing and human checking, gave about 95% completeness at R=25.0R=25.0. The survey found 3,234 distinct asteroids, 3,123 confirmed on both nights, and measured sky densities of 697±15697\pm15 per square degree brighter than R=25.0R=25.0 and 1031±231031\pm23 brighter than R=25.6R=25.6. The second number uses model corrections for incompleteness and for the overestimated fluxes of faint detections, so it is a corrected population result, not a claim of high completeness at 25.6.

The two lineages compared

Shao–Zhai synthetic trackingHeinze digital tracking
Targetsfast NEOs, satellites, astrometryfaint MBAs, population statistics
Exposures0.06–5 s, EMCCD or CMOS90–120 s, CCD mosaics
Frames per stack100–1,500120–200 per night
Velocities10⁴ (100 × 100)2.7–4.1 × 10⁴ per night
Combinationsum of PSF-filtered framesmedian with clipping
HardwareK20c (2014), V100 (2024)32-core desktop, 24-core nodes
Validationtemporal subsets, revisitspyramids, motion checks, time scrambling, injections

Sources: Zhai et al. (2014), Zhai et al. (2024), Heinze et al. (2015), Heinze et al. (2019).

Heinze 2015, 32-core desktop2.3×10⁸Heinze 2019, 24-core node3.6×10⁸KBMOD DEEP 2023, A40 (pipeline)2.2×10⁹KBMOD 2019, consumer GPU4.2×10¹⁰Zhai 2014, Tesla K20c>4.4×10¹⁰Zhai 2024, Tesla V1001.4×10¹¹Samples per second (log scale)
Trajectory–image samples per second in published searches. Each bar divides a published workload (origins × velocities × images) by its published runtime. CPU bars (1) are clipped-median stacks, which cost more per sample than the additions in the GPU bars (2); the A40 bar (3) is an end-to-end pipeline including disk loading, filtering and stamps, with an assumed 2048 × 4096 CCD and 100 images. All are estimates derived here from published numbers, on different hardware and data, and none is an equal-sensitivity comparison. Source: Derived from arXiv:1508.01599 §2.3.1; arXiv:1910.13015 §4.2; arXiv:2310.03678 §3; arXiv:1901.02492 §2.3; arXiv:1403.4353 §4.4; arXiv:2401.03255 §2.3.2.

The throughput chart sets the published workloads against their runtimes. It spans nearly three orders of magnitude, from CPU median stacks at a few times 10810^8 samples per second to a V100 sum at 1.4×10111.4\times10^{11}. Most of that span is not the GPU. A median costs more per sample than an addition, the problems differ, and the end-to-end KBMOD pipeline bar shows how much time goes outside the core sum (Chapter 17). None of these is an equal-sensitivity comparison, and the chart should be read as an atlas of what has been done, not as a ranking.

Archives, exoplanet surveys and JWST

Tycho Tracker and SPECULOOS

Daniel Parrott’s Tycho Tracker made GPU synthetic tracking available beyond the original research groups, as distributed application software for Windows and macOS with blind search, astrometry and photometry, advertised for AMD, NVIDIA and Apple Silicon GPUs (Tycho Tracker). It is a binary, so its source and exact algorithm cannot be inspected, and benchmarks must record its version, backend and driver.

Artem Burdanov, Samantha Hasler and Julien de Wit wrapped Tycho in a Python pipeline for the SPECULOOS transit survey, whose six 1-m robotic telescopes monitor nearby ultracool dwarfs for 100 to 200 hours each, producing exactly the long image sequences that shift-and-stack needs (Burdanov et al. 2023). The paper identifies OpenCL as Tycho’s GPU interface. A “last-night” mode uses overlapping short groups for fast crossers, and an archival mode pre-sums frames to make slow-object searches cheaper. The archival run processed 240,000 unsummed images, 390 observing nights in 21 fields, in about seven days, and reported 252 known objects and 16 new ones, the faintest unknown near V=23.8V=23.8. A slow-motion injection test recovered 85% of objects brighter than about V=23.0V=23.0. The runtime is a whole-framework number and cannot be turned into a kernel rate.

Decametre asteroids in JWST transit data

The same tools then found asteroids in the James Webb Space Telescope’s thermal-infrared observations of the TRAPPIST-1 planetary system: eight known and 138 unmatched objects in 93.5 hours of MIRI imaging, reported in Nature (Burdanov et al. 2025). The final paper searched speeds of 0.001 to 1.2 arcseconds per minute, with overlapping 100-exposure groups for faster crossers and longer sets for slower ones. Its injection test placed objects in 100 images, entirely within the field and at position angles of 70 to 80 degrees, and found at least 80% recovery down to 1.5 microjanskys and 50±250\pm2% at 1.1 microjanskys. Those conditions matter: they do not characterize objects crossing only part of the field. The earlier arXiv manuscript gave 139 unmatched objects and a different sensitivity scale, so the final paper is the one to quote. Infrared emission, a large aperture and motion stacking together enabled the result, and the unmatched objects’ short arcs do not give unique orbits.

Time inside a JWST integration

JWST’s infrared detectors read nondestructively many times during an integration, and the standard pipeline fits a slope to those reads to make one image. In September 2026, Anthony Girmenia and Metchev pointed out that for a moving object this throws away time information (Girmenia & Metchev 2026). By differencing consecutive groups of reads, they turned nine integrations into 27 shorter images in their demonstration dataset, each with the object less trailed, and found 13 candidate moving objects, five of them known asteroids. At an injected rate of 30 arcseconds per hour, the half-completeness magnitude improved by about 0.9 to 1.3 magnitudes relative to the standard ramp-fit products, and by 0.4 to 0.7 at 5 arcseconds per hour.

That gain is conditional on the trajectory being known. The candidate search, run with Tycho, did not use the covariance between group differences (which share reads), while the photometry and injection tests used generalized least squares along supplied trajectories. A blind search with the correct covariance was left for future work. The result shows that time information already in the archive is worth about a magnitude for fast movers, and that capturing it in a blind search is an open implementation problem.

Beyond straight lines and beyond brute force

Quadratic tracking

Li, Yuhui Zhao, Zhai, Yang Wang and Yi Han added angular acceleration to the trajectory model and tested it on Tiandu-1, a Chinese spacecraft in an Earth–Moon resonant orbit, observed on 18 December 2025 with the MASTA telescope at Purple Mountain Observatory: 800 frames of 3 seconds over about 47 minutes (Li et al. 2026). Stacking the first 1, 2, … minutes of frames, the linear method’s SNR rose to a peak of 16.77 at 29 minutes and then fell as curvature smeared the stack. The quadratic method kept rising to 21.98 at 46 minutes, 31% higher. Photon statistics and detector noise would have allowed more, so curvature was the active limit. The experiment followed a known target, and it does not show that an exhaustive blind search over accelerations is affordable: the T7T^7 estimate above is the reason.

Fast transforms

The direct search repeats almost the same sums for neighbouring velocities. The fast discrete X-ray transform (FaXT) shares them recursively: it quantizes each candidate track by repeatedly halving its total displacement, so that sums over the first and second halves of the frames can be reused by many tracks. This lowers the blind-search cost from O(n5)O(n^5) to O(n4)O(n^4) in the scaling where frames, image dimensions and velocity dimensions all grow as nn, and requires the number of frames to be a power of two. Sophia Matthews and Tam Nguyen assessed it against nearest-pixel shift-and-add at AMOS 2026 (Matthews & Nguyen 2026). For 256-frame simulated stacks, nearest-pixel searching was on average about 100 times slower. But FaXT’s quantized paths deviate more from the true track, and its mean photometric loss grew from 32% at 64 frames to 37% at 256, against 27 to 28% for nearest-pixel shifts. Two illustrated FaXT candidates fell below a threshold of 7 while their nearest-pixel counterparts stayed above it. A continuous refinement step improved detected trajectories but cannot recover a seed lost below threshold. The timings do not involve an H100 or an equal-completeness comparison. The transform lineage continues in Chapter 21 and Chapter 39.

Two-stage searches

The idea of searching blocks and combining them is older than these transforms. Shao and colleagues’ 2017 study of a constellation of small satellites with synthetic-tracking cameras discussed two-stage tracking of separated blocks of data, evaluating fine combinations only at promising pixels (Shao et al. 2017). Its illustrative numbers show the danger. A signal at SNR 7 over the full data has SNR about 5 in each of two blocks, and the proposed block threshold was 3. That keeps most such signals, but not all, and a variable or partly masked source can fall below the block threshold in one half. The same paper’s design sensitivities (a 10-cm camera reaching magnitude 20.5 in 800 seconds) are mission projections, not survey results.

Landmark results

YearWorkAchievementKey number
2014Shao et al., Hale/CHIMERAFast-camera tracking, differential astrometry700 × 0.5 s frames; 6.8/8.5 mas vs 43/79 mas
2014Zhai et al., Hale/CHIMERABlind detection with repeat confirmation23.1 mag, 5.97°/day, ≈ 30 s, SNR ≈ 15; no orbit
2014Zhai et al., K20cFirst GPU benchmark1,500 × 512² × 10⁴ in < 90 s
2015Heinze et al., WIYN 0.9 mLarge-format MBA digital tracking215 asteroids, 156 new; R=23.4R=23.4; 50 days on 32 cores
2018Zhai et al., Table MountainsCMOS + Gaia astrometry≈ 10 mas on bright targets
2018Shao et al., 28-cm RASANEOs and GEO satellites70–100 mas in 4 s
2019Heinze et al., DECamControlled MBA counts3,234 asteroids; 95% complete at R=25.0R=25.0; 240 node-days
2020Zhai et al., ZTF long dwellArchival CCD reuse1,168 detections in 40 quadrants
2023Burdanov et al., SPECULOOSAsteroids in exoplanet data16 new; 85% recovery to V≈23.0V\approx23.0
2024Zhai et al., SROOperational CMOS NEO survey61 new NEOs; V100 cube in 440 s
2025Burdanov et al., JWST/MIRIDecametre MBAs in transit data138 unmatched; 50% at 1.1 μJy
2026Li et al., Tiandu-1Quadratic trackingSNR 21.98 vs 16.77 (linear peak)
2026Matthews & NguyenFaXT assessment≈ 100× faster at 256 frames, more loss
2026Girmenia & Metchev, NIRCamGroup differencing0.9–1.3 mag conditional gain at 30″/h

Sources: the works cited in the sections above.

Limitations and open problems

Sensitivity has several limiting stages. Shifting frames cannot undo trailing within a frame. Shorter frames raise read noise and data rate. A body can leave the field before enough exposure accumulates. Off-axis aberrations, seeing changes and undersampling change both the filter and the acceptable velocity spacing. None of these is cured by more arithmetic.

Curvature limits integration, and correcting it is not free. Quadratic tracking extended Tiandu-1’s useful baseline from 29 to 46 minutes, but a blind search that adds two acceleration components multiplies the bank enormously. Physical orbit constraints are the better route (Chapter 20).

Residual stars dominate the false positives. Subtraction cannot remove a star’s shot noise, PSF variations leave structured residuals, masking removes asteroid signal along with them, and differencing against a reused reference correlates frames. Zhai found in 2014 that artifacts, not Gaussian noise, gave most false positives, and the ZTF search had to raise its threshold to 15 or 20 in difficult quadrants.

Slow movers subtract themselves. A stationary-source model built from the same data can absorb a slowly moving body. A process tuned for MBAs need not keep distant objects or objects near their stationary points, and the template separation and mask construction must be part of the injection tests.

Temporal persistence is not free. A source near the full-stack threshold is weaker in every subset, so requiring three of four subsets above SNR 5, as ZTF did, changes completeness as a function of brightness, rotation, masking and residence time. A rotating or intermittent body breaks the constant-flux template, and allowing arbitrary variability enlarges the null.

Precision is not accuracy. Residuals about a fitted line, plate-solution scatter and observed-minus-ephemeris residuals measure different things. Timing, differential chromatic refraction, spectral assumptions and frame selection can dominate the absolute error, as the gap between 10-milliarcsecond bright-target performance and the 130-milliarcsecond survey residual shows.

Detection is not an orbit. A synthetic-tracking candidate gives position and angular rate, but little radial information. This was the reason the 2013 Palomar object was never claimed, and it remains the issue with JWST’s short-arc detections (Chapter 13, Chapter 14).

The comparison everyone needs does not exist. There is no openly reproducible, end-to-end, equal-completeness comparison between the best direct GPU search and a substantially faster alternative on realistic fast-CMOS data. Historical CPU median timings, V100 sum workloads, conditional known-trajectory injections and transform simulations each answer a different question.

Where the room is

The physical limits are the photons, the sky, the aperture and seeing, the time a body spends in the field, and the read noise of the best available detector. Everything between the detector and the candidate list is engineering or algorithm, and the published systems show that much of it is memory traffic. Curvature sits in between: the acceleration is physical, but the loss from ignoring it is an algorithmic choice. The following are assessments and proposed experiments.

Build the direct baseline first. Both GPU benchmarks in this chapter were memory-bound. The obvious engineering is to tile origins and batch nearby velocities so that each loaded pixel serves many trials, fuse the gather with the accumulation, keep local reductions in registers, transfer masks compactly, never write full velocity stacks, and cut stamps only for survivors. On the K20c estimate above, the 2014 kernel streamed its input almost once per sample, so reuse is where the factor lies. Reduced precision helps bandwidth, but the faint signal is a small residual on a calibrated background, and Heinze’s half-precision edge artifacts are a reminder to validate the whole pipeline (Chapter 40). A modern direct kernel, measured with hardware counters on current GPUs, is the baseline any order-of-magnitude algorithmic claim must beat.

Reuse partial sums, with the loss stated. The T3T^3 scaling of the direct search is the main target. FaXT shows that recursive sharing can buy two orders of magnitude at 256 frames, and that the quantized paths cost photometric response and detections near threshold. The promising direction is to keep short-block numerator and information surfaces, merge only geometrically compatible states, carry signed subthreshold evidence to the end, and refine survivors on the original frames, with the extra path error measured by the mismatch metric and tested with injections near grid-cell corners. A speedup claim should come with its completeness loss and contamination at a stated threshold (Chapter 21).

Room: prune with an explicit loss budget

A source at the full-stack threshold may never be conspicuous in any short block. “Find peaks in each block, then combine” can discard exactly the population that stacking exists for, and Shao’s two-block example (block SNR about 5 for a full SNR of 7, against a block threshold of 3) reduces that loss without eliminating it. The way forward is to treat early rejection as part of the detection efficiency: calibrate the rejection policy on time-scrambled or other control data and on injected orbits, and compare it with an exhaustive search at the same final false-alarm budget. Adaptive block thresholds, bounds on the evidence still unprocessed, and population-informed motion limits are all worth testing, but none should be called exact unless a bound guarantees completeness (Chapter 38).

Search the right geometry. The physically possible velocities form a compact, population-dependent region, not a square. Sky position, epoch and orbital priors can remove impossible motions, and a mismatch-aware covering avoids oversampling. The discovery domain must still be stated explicitly, since cutting atypical rates is a scientific choice with consequences for unusual objects. For accelerations, distance-based or orbital parametrizations are far better than a rectangular grid.

Use tensor cores only where the work is dense. Tensor cores help when accumulation can be reorganized into dense reusable contractions or low-rank interpolations. An irregular gather with one addition per loaded value is not such a workload, and multiplying a GPU’s nominal FLOPS by an old runtime says nothing about what is achievable.

Keep information at acquisition. The NIRCam group-differencing result shows a different route to depth: do not collapse a time-resolved detector product before asking whether the source moved. The same reasoning argues for keeping accurate CMOS timestamps, variance maps and usable short exposures. Moving every raw frame off an edge system can overwhelm it, so sufficient statistics, reversible compression and well-chosen local blocks are a way to cut transport without selecting only bright objects early. A useful claim of improvement says which limit it relaxes, and what it pays in extra trials. Chapter 42 gathers these questions across the book.

References

  1. Burdanov, A. Y., Hasler, S. N. & de Wit, J. (2023). GPU-based framework for detecting small Solar System bodies in targeted exoplanet surveys. MNRAS 521, 4568. arXiv:2303.07293
  2. Burdanov, A. Y., de Wit, J., Brož, M., Müller, T. G. et al. (2025). JWST sighting of decametre main-belt asteroids and view on meteorite sources. Nature 638, 74. doi:10.1038/s41586-024-08480-z
  3. Girmenia, A. & Metchev, S. (2026). Increasing Sensitivity to Trailed Solar System Objects in Archival JWST NIRCam Imaging with Group Differencing. Submitted to AJ. arXiv:2609.27140
  4. Heinze, A. N., Metchev, S. & Trollo, J. (2015). Digital Tracking Observations Can Discover Asteroids 10 Times Fainter than Conventional Searches. AJ 150, 125. arXiv:1508.01599
  5. Heinze, A. N., Trollo, J. & Metchev, S. (2019). The Flux Distribution and Sky Density of 25th Magnitude Main Belt Asteroids. AJ. arXiv:1910.13015
  6. Li, Q., Zhao, Y., Zhai, C., Wang, Y. & Han, Y. (2026). Quadratic shift-and-stack for Ground-Based Optical Detection of Faint Cislunar Objects. arXiv:2603.26427
  7. Matthews, S. & Nguyen, T. (2026). Performance Assessment of Track-Before-Detect Algorithms and Post-Search Refinement Methods. AMOS Conference. amostech.com
  8. Parrott, D. (2026). Tycho Tracker (software website, accessed 16 October 2026). tycho-tracker.com
  9. Shao, M., Nemati, B., Zhai, C., Turyshev, S. G., Sandhu, J., Hallinan, G. & Harding, L. K. (2014). Finding Very Small Near-Earth Asteroids Using Synthetic Tracking. ApJ 782, 1. arXiv:1309.3248
  10. Shao, M., Turyshev, S. G., Spangelo, S., Werne, T. & Zhai, C. (2017). A constellation of SmallSats with synthetic tracking cameras to search for 90% of potentially hazardous near-Earth objects. arXiv:1503.07944
  11. Shao, M., Trahan, R., Zhai, C., Saini, N. & Turyshev, S. G. (2018). Synthetic Tracking on a Small Telescope. AMOS Conference. amostech.com
  12. Whidden, P. J., Kalmbach, J. B., Connolly, A. J., Jones, R. L. et al. (2019). Fast algorithms for slow moving asteroids: constraints on the distribution of Kuiper Belt Objects. AJ 157, 119. arXiv:1901.02492
  13. Zhai, C., Shao, M., Nemati, B., Werne, T., Zhou, H., Turyshev, S. G., Sandhu, J., Hallinan, G. & Harding, L. K. (2014). Detection of a Faint Fast-moving Near-Earth Asteroid Using the Synthetic Tracking Technique. ApJ 792, 60. arXiv:1403.4353
  14. Zhai, C., Shao, M., Saini, N. S., Sandhu, J. S. et al. (2018). Accurate Ground-based Near-Earth-Asteroid Astrometry using Synthetic Tracking. AJ 156, 65. arXiv:1805.01107
  15. Zhai, C., Shao, M., Lai, S., Boerner, P., Dyer, J., Lu, E., Reitsema, H. & Buie, M. (2018b). Technical Note: Asteroid Detection Demonstration from SkySat-3 B612 Data using Synthetic Tracking. JPL Publication 18-1. arXiv:1805.01102
  16. Zhai, C., Ye, Q., Shao, M., Trahan, R., Saini, N. S., Shen, J. & Prince, T. A. (2020). Synthetic tracking using ZTF Long Dwell Datasets. PASP 132, 064502. arXiv:1907.11299
  17. Zhai, C., Shao, M., Saini, N., Choi, P., Evans, N., Trahan, R., Nazli, K. & Zhan, M. (2024). Near-Earth Object Observations using Synthetic Tracking. PASP 136, 034401. arXiv:2401.03255