Photoreal Three.js camping world — first-person, self-play iterated to cap (20 iterations)#14
Draft
ilikevibecoding wants to merge 29 commits into
Draft
Conversation
…ot harness, movement tests Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…ion (29 models, 60MB) Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…tree LODs, life-size grass cards, sun corridor Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…, alpha-to-coverage grass, brighter sun Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…n:env contrast, greener palette, SW camera poses Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…igger fire ring, post stack (N8AO+grade+vignette+grain+SMAA) Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…(was double sRGB encode) Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…od heap, hero tree LODs, far-field ground tint, trim unused HDRIs Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
… (env 0.72, AO 1.4), reframe backlit view, denser far treeline, island_tree_02 foliage bump Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…tree_trunk_02, charred logs, bark scraps; bounds debug script Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
… woodpile east of pit, lantern centered on crate Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…hter char tint, AO debug params Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…e (no glaucous sheen), placeOn fixes lantern/hatchet, pit bedding + ash tweaks, darker far rim Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…r, warm shadow split-tone, matte pale ash, tinted bark scraps, real renderer stats (autoReset off) Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
… (was reading as pale dunes), dustier fog, dimmer far grass cards, ash bed above scan floor, matte warm pit stones, layer-isolation debug params Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…sh grey, far grass dim from 32m Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
… pale band), lumpy ash mound, softer pit tint, warm-bias searsia/nettle Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…orward-scatter was the surviving band), mottled lumpy ash + charcoal chunks Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
… dim, brighter far-terrain albedo, exposure 0.70 Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…far-terrain albedo 0.34 Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…-olive fog Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…ot rubber Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…oke wall-clock waits) — all 5 pass Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…ro shot Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…N link, no merge/deploy needed Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…world at /play/ Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…vert Pages workflow probe Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🎮 Play it now — no merge, no install
Click to play (CDN, pinned build):
https://rawcdn.githack.com/ilikevibecoding/My-projects/dd19ef3f8d535839b9ad1ed1f9b64f840d6da209/camping-world/play/index.html
Always-latest variant (tracks this branch): https://raw.githack.com/ilikevibecoding/My-projects/cursor/bc-5fd2158d-847b-44d3-b77f-90ba063719c5-2695/camping-world/play/index.html
githack shows a one-time "External Content Notice" interstitial — click Open the page. First visit streams ~160 MB of photoscanned assets, so the loading screen takes a moment. The production Vite build is committed at
camping-world/play/so the whole game runs straight off the CDN with zero deployment.Verified end-to-end from the CDN URL in headless Chrome — game boots,
__READYfires, campsite renders:Game running live from the CDN — campsite viewpoint
Photoreal Three.js camping world
A first-person camping clearing aiming for an RDR2-style golden-hour mood: rolling dry meadow cupped by a treeline, photoscanned trees and deadwood, a stone fire pit with lumpy ash + charcoal, and ~130k instanced grass cards in the wind. Built in
camping-world/with Vite + Three.js, iterated via an automated self-play screenshot loop to the 20-iteration cap.Controls
WASDwalk (2.2 m/s) ·Shiftsprint (4.8 m/s) · mouse look (pointer lock) ·Escrelease. 1.7 m eye height, terrain following, head bob, collision vs trunks/boulders/props.Self-play loop (iter 0 → 20)
Deterministic 6-viewpoint screenshot harness (
?shot=1, Playwright + SwiftShader), scored each iteration against a 10-item realism rubric, then targeted fixes.Final viewpoints: campsite · wide vista · backlit camp · hero tree · grass eye-level
Highlights of the iteration log
Functional verification
Deterministic fixed-step movement tests (
scripts/test-movement.mjs): walk 2.20 m/s ✓, sprint 4.79 m/s ✓, eye height 1.70 m ±bob ✓, tree collision stops the player ✓, pointer-lock look ✓.Assets
All CC0 from Poly Haven (photoscanned models, ground textures, HDRI), fetched by
scripts/fetch-assets.mjsand crunched by a gltf-transform pipeline (weld/simplify/WebP/meshopt) inscripts/optimize-assets.mjs. Credits in the README.Notes
camping-world/play/is the committed production build that powers the CDN link above. Rebuild withnpm run buildand re-copy if the source changes.github-pagesenvironment's branch protection only allowsmain+ one legacy branch; the workflow change was reverted to keep CI green. If you ever want it onehpurple.com/play/, allow this branch in the environment settings or merge.To show artifacts inline, enable in settings.