BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기lauraevan/Xbox
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A console dashboard rebuilt for the browser: the system bar, the tile rail,
the guide overlay, spatial focus, controller input, achievements, a 743-title
catalogue streamed straight from the CDN, and cloud titles streamed through
Stratus.
Runs from static files in development — open index.html and it works. Production
goes out through a build step (npm run build) that Vercel runs for you.README 전문 보기 ↗A console dashboard rebuilt for the browser: the system bar, the tile rail, the guide overlay, spatial focus, controller input, achievements, a 743-title catalogue streamed straight from the CDN, and cloud titles streamed through Stratus.
Runs from static files in development — open index.html and it works. Production
goes out through a build step (npm run build) that Vercel runs for you.
https://xbox-xi-gold.vercel.app
That address always serves the newest commit on
claude/xbox-web-replica-v4s0jk: Vercel's GitHub integration picks up every
push, runs npm run build, and publishes dist/. Nothing to re-copy after a
push — reload the same link.
githack served the repository tree directly, which was fine while this was a
pile of static files. It cannot host the backend. /api/stratus is a
serverless function that keeps the Stratus API key server-side, and a static
file host has nowhere to run it. githack also rate-limits: this page pulls
more than twenty scripts, and once the host started throttling, one script
failed to arrive and the boot screen never cleared.
| Piece | Where it runs |
|---|---|
| Dashboard | Vercel static, built from dist/ by scripts/protect-build.mjs |
/api/stratus | Vercel serverless function (api/stratus.js) |
| Stratus backend | a persistent host — Vercel functions are too short-lived |
| Catalogue and covers | jsDelivr at runtime, nothing vendored |
vercel.json sets buildCommand: npm run build and outputDirectory: dist.
api/ is picked up by Vercel independently of the static output, so the
function ships even though the build never copies it into dist/.
| Action | Keyboard | Controller |
|---|---|---|
| Move focus | Arrows / WASD | D-pad or left stick |
| Select | Enter / Space | A |
| Back | Esc / Backspace | B |
| Search | X | X |
| Pin / unpin | Y | Y |
| Switch view | Tab / Shift+Tab | RB / LB |
| Game details | M | Menu |
| Achievements | V | View |
| Guide | G / Home | Guide |
Focus moves by geometry, not DOM order, so a grid behaves like a console grid: pressing right picks the nearest tile to the right, weighting cross-axis drift so rows and columns stay coherent. Mouse and touch work too.
Multiple profiles with per-profile state, Quick Resume, a captures gallery, screen-time limits, content blocks by category, night mode on a schedule, an idle HUD, a time drawer, button remapping, and accessibility passes for colour-vision filters, text scaling, high contrast and reduced transparency.
With nothing selected, Home runs the Xbox Series X|S Waves wallpaper behind the dashboard, and cross-fades a game's key art over it once a tile is focused. The clip is vendored, not hotlinked, at 1080p and 720p — the smaller pair is served to phones and tablets. It is never fetched at all under reduced motion, Save-Data, a 2g connection, under 4 GB of device memory, or when a fixed wallpaper is set, and every failure path lands on a still poster rather than an empty frame.
Profile, pins, recents, playtime, achievements and settings persist to
localStorage; captures and a custom wallpaper live in IndexedDB. The console
remembers you between visits.
The catalogue is fetched at runtime from the CDN — nothing is vendored here:
cdn.jsdelivr.net/gh/bestsabplayerox/assets@main/zones.jsoncdn.jsdelivr.net/gh/bestsabplayerox/covers@main/cdn.jsdelivr.net/gh/bestsabplayerox/html@master/The manifest ships {COVER_URL} and {HTML_URL} placeholders, which
catalog.js expands. Every asset also carries a raw.githubusercontent.com
fallback, so covers, backdrops and the manifest itself recover on networks that
block jsDelivr. If both hosts fail, the dashboard says so instead of sitting
empty.
Flagship key art and the Waves wallpaper are vendored under assets/
rather than hotlinked, so they do not depend on a third-party host staying
reachable.
Cloud titles come from Stratus. The integration goes deeper than a catalogue drop-in: purchased licences are surfaced first in the library, and sessions are created, started, kept alive and quit from the dashboard itself.
The browser never sees the API key. Requests go
browser -> /api/stratus (Vercel function) -> Stratus API
api/stratus.js reads the credential from the environment only, returns a
clean 503 when it is not configured, and fails over to a secondary upstream on
a retryable status. The backend is vendored under stratus/ for reference and
is deliberately excluded from the published build — see below.
The UI is authored against a 1920×1080 canvas:
:root { font-size: min(100vw / 192, 100vh / 108); }
1rem = 10px at 1080p, so every size in the stylesheets reads as "pixels at
1080p" and the whole dashboard scales to any panel. Below 760px it reflows for
a phone.
index.html load order is load-bearing; see below
api/ Vercel serverless functions (Stratus gateway)
assets/ boot clip, Waves wallpaper, vendored key art, icon licence
stratus/ vendored Stratus backend, not published to the web build
scripts/ protect-build.mjs, the production build
css/ 22 stylesheets: tokens and TV scaling, then themes and passes
js/ 31 scripts, loaded in order
Load order matters. The base modules own the data and the first render:
icons media features artwork catalog state audio nav views
console-pages stratus stratus-backend-pass store cloud-library
guide reference personalization app
| Module | Owns |
|---|---|
catalog | manifest loading, mirrors, queries |
media | cover loading: mirror chain, bounded queue, retries, host health |
state | profiles, pins, recents, achievements, settings |
nav | spatial focus engine, gamepad and keyboard input |
stratus | the cloud catalogue and session lifecycle |
app | boot, routing, backdrop, detail page, launching |
Everything after app is a pass — a layer that augments what already
exists rather than replacing it. Passes wrap rather than rewrite, attach
through the nav:* event seam, and fail soft: a pass that cannot do its job
must leave the dashboard working.
A consequence worth knowing before adding a 32nd script: these load
sequentially and later ones patch earlier ones, so one failing to arrive leaves
a half-patched app rather than a clean failure. An inline failsafe in
index.html clears the boot screen after 13s and names the missing modules.
The startup clip is treated as optional decoration, so a weak connection never leaves you on a buffering screen:
| Guard | Behaviour |
|---|---|
| Ready budget | 2.5s to become playable, else fall back to the still |
| Stall grace | 1.2s to recover mid-play, else fall back |
| Hard cap | 10s ceiling on the boot screen, whatever happens |
| Save-Data | never fetches the clip at all |
| Reduced motion | never fetches the clip at all |
The poster is the clip's final frame, so a skipped boot lands exactly where the animation would have ended rather than cutting from an unrelated image. The manifest loads in parallel with the clip and is capped at 9s, so a dead network surfaces a message instead of hanging.
Encoded weight: 118 KB (H.264) / 97 KB (VP9) / 18 KB poster. Audio is stripped — autoplay requires a muted track anyway, so it was 65 KB of dead weight.
Fluent UI System Icons,
MIT licensed, © Microsoft Corporation — the same system icon family Microsoft
ships across its own products. 27 of them are vendored into js/icons.js as
path data; the licence is at assets/FLUENT-ICONS-LICENSE.txt.
The profile avatar is generated procedurally from a seed, and the UI sounds are synthesised at runtime rather than sampled. Game cover art and the games themselves belong to their respective developers and load from the CDN above at runtime — the manifest credits each developer, and the detail page links to them.
To run it locally, use a static server (python3 -m http.server) rather than
file://, so the catalogue fetch isn't blocked by CORS.
The original Xbox project code is proprietary and covered by the root
LICENSE. Third-party material keeps its own license or permission.
Production deployments use scripts/protect-build.mjs. Vercel publishes a
separate dist/ artifact instead of serving the repository tree directly.
Selected project-specific JavaScript is obfuscated with source maps disabled,
and server-side Stratus source under stratus/api is not copied into the
public static deployment.
Obfuscation is a deterrent, not a substitute for keeping secrets and sensitive server logic off the client. API credentials remain server-side.