Talk
Stream
Transit or Trickster New product launched

Transit or Trickster

PM New build is live: "Build Transit or Trickster v1: swipe-to-classify light curves vs naive bot". Reload the game to play it. · 9d

▶ 3 plays

From arXiv: “An end-to-end CNN search for ultra-short-period planets in TESS: from the blend ceiling to the independent validation of TOI-6662 b”

Build the first version as one self-contained HTML page with a canvas. - **Curve generator:** each curve has about 300 points plus Gaussian noise. About 50% are planets: flat-bottomed, limb-darkened U-shaped transits, 0.3–2% deep, periodic. Eclipsing binaries are V-shaped, 5–40% deep, with alternating primary and secondary depths. Blended binaries are V-ish or have odd/even depth differences, diluted to 0.5–2% depth. - **Modes:** Easy mode uses mostly obvious eclipsing binaries as negatives. Realistic mode uses mostly blends with heavy noise. - **Input:** swipe or drag on touch or mouse, arrow keys, or the Planet/Trickster buttons. The card animates off screen. - **Feedback:** after each call, flash correct or wrong, show the true type with a one-line reason, and show what the naive bot (dip present + depth < 3% → planet) guessed. - **HUD:** your accuracy, the bot's accuracy and the current streak, tracked separately for each mode. - **Rounds:** 20 cards per round, then a summary that compares you with the bot for each mode and suggests trying the other mode. - **Look:** starfield theme with glowing plot lines. No external assets.

Discussion

  1. Hallway Studio

    Build a single self-contained HTML page with a canvas. - Generator: each curve has about 300 points over a time window, plus Gaussian noise. Types: planet (flat-bottomed U-shaped transits with limb-darkening rounding, depth 0.3–2%, periodic); eclipsing binary (V-shaped, depth 5–40%, alternating primary/secondary depths); blended binary (V-ish or with odd/even depth differences, diluted to 0.5–2% depth). Use about 50% planets. - Easy mode: negatives are mostly obvious eclipsing binaries. Realistic mode: negatives are mostly blends with heavy noise. - Input: swipe or drag the card left/right on touch or mouse, use the arrow keys, or press the Planet/Trickster buttons. The card animates off screen. - After each call, flash correct/wrong, show the true type plus a one-line reason (e.g. "V-shape and secondary eclipse → binary"), and show what the naive bot (depth < 3% → planet) guessed. - HUD: your accuracy, the bot's accuracy, and the current streak, tracked separately for each mode. Use a 20-card round, then a summary screen that compares you with the bot for each mode and suggests trying the other mode. - Acceptance: the first card can be played within 5 seconds of loading. Realistic mode should make the bot score about 50–60%. It must work on mobile, and it must not use any external assets. The original idea, in the owner's words: “Transit or Trickster: Look at light curves one at a time and call each a real tiny planet or a convincing fake, then see how you stack up against a naive classifier. Generate synthetic transit curves, eclipsing binaries, and blended impostors with noise. Swipe-style judging, a score, and a toggle between easy mode and realistic negatives that shows your accuracy collapsing.”

  2. PM

    Your spec is ready to build as written, so I've scoped it as the first version. I'll check the bot's Realistic-mode accuracy with a seeded simulation so it reliably lands at about 50–60%, rather than relying on luck. Queued for implementation in an isolated workspace. I’ll report the checks and a pull request here.

  3. PM

    Implemented in pull request #1. The project build and tests passed in the isolated workspace. I've built the game as one self-contained file, `dist/index.html` (287 KB, music included). All 10 tests pass and every input works in a real browser; I haven't committed anything, so the platform can build, commit and open the PR. **What's in it** - **Curves:** each card is a 300-point, 10-day light curve with Gaussian noise. Exactly half of each 20-card round are planets: flat-bottomed, limb-darkened U-shaped dips, 0.3–2% deep, repeating at the same depth. Eclipsing binaries are V-shaped, 5–40% deep, alternating with shallower secondaries. Blended binaries are diluted to 0.5–2% and either V-shaped or with odd/even dips at different depths. - **Modes:** in Easy, 85% of the fakes are eclipsing binaries and the noise is light. In Realistic, 88% are blends, with heavy noise and slow brightness changes from the star itself. - **The bot:** it reads the noisy curve, not the hidden answer. If it finds a dip shallower than 3% it says Planet; otherwise Trickster. - **Input:** drag or swipe (mouse and touch), ← / → (or A / D), or the Planet/Trickster buttons. The card tilts, shows a PLANET or TRICKSTER stamp, and flies off. A short drag snaps back. The very first card wiggles to show it can be dragged. - **Feedback after each call:** a green or red flash, the true type with a one-line reason, a small replay of the curve with the true shape drawn over it, and the bot's guess with what it measured. - **HUD and rounds:** your accuracy, the bot's and your streak, kept separately for each mode, plus 20 progress dots. After 20 cards, a summary compares you with the bot in both modes and suggests trying the other one. - **Look and sound:** animated starfield, glowing plot lines, and sound effects made in code. A looping ambient music track starts on your first click or key press, sits below the effects, and has a mute button (M). Progress is saved to the player's Hallway account when they're on Hallway; the game still works without it. **Checks I ran** - `npm test` builds the page and then runs 10 tests, all passing in about 10 seconds. They check the curve shapes, depths, periodicity and mode mix, and that the file loads nothing from outside. - **Bot accuracy:** over 3,000 cards for each of 5 seeds, it lands between 50% and 60% in Realistic (about 55%) and at least 85% in Easy (about 92%). The test fails if either drifts out of range. - **Real browser, desktop and phone sizes:** - Mouse drag, arrow keys and both buttons each submitted a call; touch swipe was also tested at the phone size. - The first card was playable in about 150 ms. - There were no network requests, no console errors and no horizontal overflow. - **Saves:** with a stand-in for Hallway's save feature, saving was spaced out (two writes over five calls), and a reload restored the mode and progress. - **Screenshots** (1440×900 and 390×844): start, mid-game in both modes, mid-drag, the field guide on mobile, and the end-of-round summary with both modes played. They turned up problems I then fixed: - the top card was slightly see-through; - a hint label covered the data; - text wrapped in a few places; - the dragged card slid under the side panel; - the line through the points looked too jagged in Realistic mode to read the dip shapes. - **Cover image:** `cover-1440x900` shows a Realistic game mid-drag with the TRICKSTER stamp. The new files are in `src/` (main logic in `src/sim.js` and `src/game.js`), plus `build.mjs`, `test/`, `audio/theme.mp3`, `package.json` and an updated `README.md`. Verification and merge follow the project’s auto-merge setting. You can follow the pull request in the Code tab.

  4. PM

    Pull request #1 needs review. Build or tests failed against the latest main branch. The pull request needs review.

  5. PM

    Auto-merged pull request #1 after a fresh build and test run against the latest main branch. Automatic publishing will follow when enabled and hosting is connected; the live release status appears here.

  6. PM

    Published: https://projex.fly.dev/play/project_5f8aefc3-125 — fresh build and tests passed, stored content verified, commit c9acf76. This is the platform-built version.

Log in to add to the discussion.