BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
반딧불이 시계·트레일·야간 감시, 2분 게임으로 반응·기억·집중을 재미있게 측정
Firefly Watch, Firefly Trail and Night Watch are two-minute games that check in on reaction time, memory and attention without ever feeling like a test.
게임TypeScript · CSSGitHub @ShreyanMitra5온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Three calm, storybook-night games for children that measure cognition without ever feeling like a test. Menus and game introductions use responsive, scrollable layouts. Measured gameplay stays on a fixed 390 × 844 dp reference canvas that scales to fit the screen's safe area.
| # | Game | Task it is built on | What it measures (never shown to the child) |
|---|---|---|---|
| 1 | Firefly Watch | Psychomotor Vigilance Task | median reaction time, lapses, false starts |
| 2 | Firefly Trail | Corsi block-tapping (spatial span) | anchor accuracy, span, tap timing |
| 3 | Night Watch | Mackworth Clock (vigilance) | hits, misses, false alarms, reaction-time steadiness, per-quarter counts |
npm install
npm run dev # http://localhost:3000
npm run build # production build
npx tsx scripts/check-forms.ts # verifies every stored session list against the design rules
npx tsx scripts/check-scoring.ts # self-checks the scoring engine on synthetic logs
npx tsx scripts/check-watch-progress.ts # catch, timeout, and pause/resume regressions
npx tsx scripts/check-trail-response.ts # empty, partial, and complete Done responses
npx tsx scripts/check-night-watch.ts # fixed-length runs and response-window boundaries
Art preview pages (for review only): /dev/skins, /dev/fox, /dev/companions, /dev/scenes, /dev/ui.
/ Welcome — the public landing page with the download button./basecamp Basecamp — the home place: the fox, the three games, the collection of rewards, the grown-ups link. First launch redirects to Choose what you'll catch. The installed app opens here./choose-skin — pick one of six original stimulus skins (firefly, butterfly, friendly pup, comet, glow jelly, star spark)./choose-world — Night Watch world: Forest Friends (fox, lanterns), Space Voyagers (otter astronaut, beacons), Neon Arcade (neon lynx, windows)./firefly-watch, /firefly-trail, /night-watch — the games. Each has Ready → practice → scored play → optional unscored cooldown → All done, plus pause, interruption, and stop-early overlays./settings — change skin / world, sound, reduced motion, text size, high contrast, read instructions aloud, gentle pace, short watch, delete all data./grown-ups — hold-to-enter page with per-game trends against the child's own usual, reliability labels, and per-session delete. The only place numbers appear.scripts/check-forms.ts enforces all of this.requestAnimationFrame). Taps use the pointer event's own timeStamp, not when handler code ran.src/
app/ routes (App Router); each page renders one client screen
components/
Stage.tsx scrollable menus or a 390×844 game canvas; `At` positions game elements in dp
ui/ buttons, chip, pips, speech bubble, reward card, big circle button, overlay
art/ all original vector art: scenes, Fox, Otter, Lynx, six skins, stones, lights, rewards
games/
firefly-watch/ Game 1 engine + screens
firefly-trail/ Game 2 engine + screens
night-watch/ Game 3 engine + screens (three worlds)
basecamp/ choose/ settings/ grown-ups/
lib/
forms/ the stored session lists and timing constants (TUNE values live here)
scoring/ scoring engine and trend series
db.ts encrypted IndexedDB (Dexie + WebCrypto)
session.ts finishSession, interruption hook, frame timing, timers
settings.tsx settings store (localStorage) and accessibility modes
audio.ts synthesised chime and quiet pad; voice instructions
theme.ts the palette from the design document
scripts/
check-forms.ts validates all stored lists
check-scoring.ts scoring engine self-check
gen-nightwatch-forms.mjs one-off generator used to produce the Night Watch forms
Every value marked TUNE in the design doc lives in src/lib/forms/*.ts as a named constant (WATCH_TIMING, TRAIL_TIMING, NIGHT_WATCH_TIMING). Change them there, never in a game file.
The ios/ folder is a Capacitor 8 native app with bundled Next.js screens, fonts, and artwork. It opens at Basecamp and works without a web server or an internet connection. Session history stays on the device. The website and native app have separate local storage.
Requirements: macOS, Xcode 26 or newer, Node.js 22 or newer. The app targets iOS/iPadOS 16.4 and newer. iPhone uses portrait; iPad supports portrait and landscape.
npm ci
npm run ios:sync # build the offline screens and copy them into Xcode
npm run ios:open # open ios/App/App.xcodeproj
In Xcode, choose the App scheme and an iPhone/iPad simulator, then Run. For a physical device, choose your Apple development team under Signing & Capabilities, keep automatic signing enabled, connect your device, select it, and Run. The starter bundle identifier is com.braincompass.basecamp; change it in both capacitor.config.ts and the Xcode target if your team needs a different identifier. Personal signing settings are not stored in the repository.
For a release archive, select Any iOS Device and use Product → Archive. An unsigned archive cannot be installed on a phone; distribution requires a matching signing profile. No App Store or TestFlight upload is performed by these scripts.
Every web-code update needs npm run ios:sync before rebuilding in Xcode. Native builds use a static export in out/; npm run build remains the normal website build. Both build modes use .next/, so stop a running production web server before switching modes, then rebuild it normally before npm start.
The native route handler serves each exported route's index.html, including cold launches, and preserves Next's navigation payloads. The app pauses on native background events. Keep the default capacitor://localhost origin unchanged so existing local history remains accessible. Simulator builds must use Xcode's normal local signing (do not disable signing), because WebKit needs the app identifier to persist its encryption key.
src/lib/audio.ts when they land.finishSession at the real engine when it is ready.The project is a standard Next.js app. Import the GitHub repo into Vercel with the default settings (framework: Next.js, build: npm run build); no environment variables are needed. The landing page is /, the app is /basecamp, and the web manifest installs the app to a phone's home screen from /.
src/lib/scoring) is pure and offline; the trend is ready well inside the 2-second budget. Every measure is labelled experimental until test-retest ICC reaches 0.70 and is excluded from any composite.