Spaces:
Running
Running
metadata
title: 🧜♀️Streamlit🧠CV📚Scroller
emoji: 🧜♀️📚🧜♂️
colorFrom: gray
colorTo: pink
sdk: streamlit
sdk_version: 1.44.1
app_file: app.py
pinned: false
license: mit
short_description: 🧠CV Scroller🧜♀️🧜♂️🧜3D Graphs
🐍 Python Startup
- 📂
load_plot_metadata()
→ scansaved_worlds/
forplot_X…_Z…csv
(cached) - 📑
load_plot_objects()
→ read CSV → buildALL_INITIAL_OBJECTS
- 🔒
get_game_state()
→ singletonGameState
→ load/holdworld_state.csv
- 🚀 Inject →
ALL_INITIAL_OBJECTS
,PLOTS_METADATA
,GAME_STATE
intoindex.html
- 📂
💾 Save Flow
- 🖱️ User clicks “💾 Save” → JS
getSaveDataAndPosition()
→ returns JSON payload - 🔄 Py parses → computes
plot_X…_Z….csv
→save_plot_data()
writes per‑plot file - ➕
game_state.update_state()
merges intoworld_state.csv
- 🔁
load_plot_metadata.clear()
+st.rerun()
→ refreshed state
- 🖱️ User clicks “💾 Save” → JS
🌐 Three.js Init
- 🌟
init()
→ scene, camera, lights - 🛤️
setupInitialGround()
→ one plane per saved plot (or at 0,0) - 👤
setupPlayer()
→ capsule mesh at center - 📦
loadInitialObjects()
→ instantiate all persisted objects
- 🌟
🎮 Interaction & Local State
- 🖱️
onDocumentClick()
→ raycast → spawnHouse/Tree/Rock…
→ add tonewlyPlacedObjects
- 💾
saveUnsavedState()
→ persistnewlyPlacedObjects
tosessionStorage
- 🔄
restoreUnsavedState()
on reload → rehydrate unsaved objects - 🗑️
resetNewlyPlacedObjects()
→ clear sessionStorage
- 🖱️
⏩ Game Loop
- 🔑
onKeyDown
/onKeyUp
→ track WASD/Arrows - 🚶
updatePlayerMovement()
→ camera‑relative walk +checkAndExpandGround()
- 🌱
checkAndExpandGround()
→ add placeholder planes around player - 📽️
animate()
→ movement, camera lerp,renderer.render()
- 🔑
🔄 Collab Sync
- ⏲️
setInterval(pollGameState, 5000)
→ logs or applies updatedwindow.GAME_STATE
- ⏲️
✨ All set! This ultra‑condensed outline (with emojis 🎉) covers your end‑to‑end state protocol.