Skip to content

baseball v1.3.0 — statcast hero card + animated trajectory (phase 4)

Choose a tag to compare

@JamesAwesome JamesAwesome released this 20 Jul 21:07
d3e35cc

baseball v1.3.0 — Statcast design uplift (Phase 4)

baseball.statcast gains the design handoff's hero card at scale>1, with an animated trajectory whose arc genuinely differs per batted ball.

Hero card (bigsign + longboi)

  • Each superlative renders as a hero card: player, color-coded result, exit-velo headline, and launch-angle / distance / pitch details. Scale-1 (smallsign) keeps the classic scrolling superlative lines, byte-identical.
  • layout = "auto" (default) / "big" / "long".

Animated trajectory (both scale>1 signs)

  • Batted-ball superlatives (longest_hr, hardest_hit) draw an animated arc: the ball flies (~1.5s) then rests at a result-driven landing actclears (wall tick), fair (ground), track (warning-track line), caught (glove), grounder (flat skip). The flight restarts fresh each time the card is shown.
  • The arc has teeth: apex height, peak position, descent, and landing come from the ball's real launch angle, exit velo, distance, and batted-ball type — a 470ft moonshot towers over a 365ft wall-scraper, a line-drive draws a flat rope where a fly ball domes. A given ball always draws the same arc; different balls diverge.
  • Longboi uses the full-width DISTANCE slot; the bigsign fits a compact panel in the block under the result label.
  • Pitch superlatives (fastest_pitch, slowest_pitch) show the pitch type in that slot instead (no arc).

Notes

  • Pure, deterministic trajectory geometry (trajectory.plan_arc) — no randomness, fully testable.
  • Enriched StatRecord carries the full play context; NaN/inf distances are rejected at the source (no render-loop raise).
  • All hero-card text is width-guarded so pitch names can't overlap the distance panel or clip the edge.