awacke1 commited on
Commit
53c7232
·
verified ·
1 Parent(s): e961569

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -25
app.py CHANGED
@@ -71,8 +71,8 @@ def load_aframe_and_extras():
71
  var gw = 8, gh = 8;
72
  var center = {x: 0, y: 0, z: 0};
73
  var height = Math.max(gw, gh) * 1.5; // y=12 for center view
74
- var lowHeight = height / 2; // y=6 for closer views
75
- var offset = Math.max(gw, gh); // x/z offset=8 to position at the edge
76
  var pos, rot;
77
 
78
  rot = {x: -90, y: 0, z: 0}; // Always top-down view
@@ -82,28 +82,28 @@ def load_aframe_and_extras():
82
  pos = {x: center.x, y: height, z: center.z};
83
  break;
84
  case 'left':
85
- pos = {x: -offset, y: lowHeight, z: center.z};
86
  break;
87
  case 'right':
88
- pos = {x: offset, y: lowHeight, z: center.z};
89
  break;
90
  case 'front':
91
- pos = {x: center.x, y: lowHeight, z: -offset};
92
  break;
93
  case 'back':
94
- pos = {x: center.x, y: lowHeight, z: offset};
95
  break;
96
  case 'angle1':
97
- pos = {x: -offset, y: lowHeight, z: -offset};
98
  break;
99
  case 'angle2':
100
- pos = {x: offset, y: lowHeight, z: -offset};
101
  break;
102
  case 'angle3':
103
- pos = {x: -offset, y: lowHeight, z: offset};
104
  break;
105
  case 'angle4':
106
- pos = {x: offset, y: lowHeight, z: offset};
107
  break;
108
  }
109
  rig.setAttribute('position', pos);
@@ -117,13 +117,21 @@ def load_aframe_and_extras():
117
 
118
  switch(action) {
119
  case 'forward':
120
- velocity.z = Math.max(velocity.z - accel, -maxSpeed);
 
 
 
 
 
 
 
121
  break;
122
  case 'backward':
123
  velocity.z = Math.min(velocity.z + accel, maxSpeed);
124
  break;
125
  case 'stop':
126
  velocity = {x: 0, y: 0, z: 0};
 
127
  break;
128
  case 'rollCCW':
129
  rot.z += rSpeed;
@@ -131,10 +139,6 @@ def load_aframe_and_extras():
131
  case 'rollCW':
132
  rot.z -= rSpeed;
133
  break;
134
- case 'reset':
135
- moveCamera('center');
136
- velocity = {x: 0, y: 0, z: 0};
137
- return;
138
  }
139
  rig.setAttribute('rotation', rot);
140
  }
@@ -259,19 +263,19 @@ def main():
259
  st.set_page_config(layout="wide")
260
  with st.sidebar:
261
  st.markdown("### 🧭 Camera Views")
262
- st.markdown("**Select View** 📷")
263
  cols = st.columns(3)
264
- cols[0].button("🔳 Center", on_click=lambda: st.session_state.update({'camera_view': 'center'}))
265
- cols[1].button("⬅️ Left", on_click=lambda: st.session_state.update({'camera_view': 'left'}))
266
- cols[2].button("➡️ Right", on_click=lambda: st.session_state.update({'camera_view': 'right'}))
267
  cols = st.columns(3)
268
- cols[0].button("⬆️ Front", on_click=lambda: st.session_state.update({'camera_view': 'front'}))
269
- cols[1].button("⬇️ Back", on_click=lambda: st.session_state.update({'camera_view': 'back'}))
270
- cols[2].button("↖️ Angle 1", on_click=lambda: st.session_state.update({'camera_view': 'angle1'}))
271
  cols = st.columns(3)
272
- cols[0].button("↗️ Angle 2", on_click=lambda: st.session_state.update({'camera_view': 'angle2'}))
273
- cols[1].button("↙️ Angle 3", on_click=lambda: st.session_state.update({'camera_view': 'angle3'}))
274
- cols[2].button("↘️ Angle 4", on_click=lambda: st.session_state.update({'camera_view': 'angle4'}))
275
 
276
  st.markdown("### ➕ Add Media Files")
277
  ups = st.file_uploader("Add files (png, jpeg, obj, glb, mp4, etc.):", accept_multiple_files=True)
 
71
  var gw = 8, gh = 8;
72
  var center = {x: 0, y: 0, z: 0};
73
  var height = Math.max(gw, gh) * 1.5; // y=12 for center view
74
+ var lowHeight = 3; // y=3 for closer views
75
+ var quadrantOffset = Math.max(gw, gh) / 4; // 2 units to center on quadrants
76
  var pos, rot;
77
 
78
  rot = {x: -90, y: 0, z: 0}; // Always top-down view
 
82
  pos = {x: center.x, y: height, z: center.z};
83
  break;
84
  case 'left':
85
+ pos = {x: -quadrantOffset, y: lowHeight, z: center.z}; // Center on left side
86
  break;
87
  case 'right':
88
+ pos = {x: quadrantOffset, y: lowHeight, z: center.z}; // Center on right side
89
  break;
90
  case 'front':
91
+ pos = {x: center.x, y: lowHeight, z: -quadrantOffset}; // Center on top side
92
  break;
93
  case 'back':
94
+ pos = {x: center.x, y: lowHeight, z: quadrantOffset}; // Center on bottom side
95
  break;
96
  case 'angle1':
97
+ pos = {x: -quadrantOffset, y: lowHeight, z: -quadrantOffset}; // Top-left quadrant
98
  break;
99
  case 'angle2':
100
+ pos = {x: quadrantOffset, y: lowHeight, z: -quadrantOffset}; // Top-right quadrant
101
  break;
102
  case 'angle3':
103
+ pos = {x: -quadrantOffset, y: lowHeight, z: quadrantOffset}; // Bottom-left quadrant
104
  break;
105
  case 'angle4':
106
+ pos = {x: quadrantOffset, y: lowHeight, z: quadrantOffset}; // Bottom-right quadrant
107
  break;
108
  }
109
  rig.setAttribute('position', pos);
 
117
 
118
  switch(action) {
119
  case 'forward':
120
+ var cam = document.querySelector('[camera]');
121
+ var dir = new THREE.Vector3();
122
+ cam.object3D.getWorldDirection(dir); // Raycast direction (downward for top-down view)
123
+ var pos = rig.getAttribute('position');
124
+ pos.x += dir.x * 0.1;
125
+ pos.y += dir.y * 0.1;
126
+ pos.z += dir.z * 0.1;
127
+ rig.setAttribute('position', pos);
128
  break;
129
  case 'backward':
130
  velocity.z = Math.min(velocity.z + accel, maxSpeed);
131
  break;
132
  case 'stop':
133
  velocity = {x: 0, y: 0, z: 0};
134
+ moveCamera('center');
135
  break;
136
  case 'rollCCW':
137
  rot.z += rSpeed;
 
139
  case 'rollCW':
140
  rot.z -= rSpeed;
141
  break;
 
 
 
 
142
  }
143
  rig.setAttribute('rotation', rot);
144
  }
 
263
  st.set_page_config(layout="wide")
264
  with st.sidebar:
265
  st.markdown("### 🧭 Camera Views")
266
+ st.markdown("**Select Quadrant** 📷")
267
  cols = st.columns(3)
268
+ cols[0].button("↖️ Top-Left", on_click=lambda: st.session_state.update({'camera_view': 'angle1'}))
269
+ cols[1].button("⬆️ Top", on_click=lambda: st.session_state.update({'camera_view': 'front'}))
270
+ cols[2].button("↗️ Top-Right", on_click=lambda: st.session_state.update({'camera_view': 'angle2'}))
271
  cols = st.columns(3)
272
+ cols[0].button("⬅️ Left", on_click=lambda: st.session_state.update({'camera_view': 'left'}))
273
+ cols[1].button("🔳 Center", on_click=lambda: st.session_state.update({'camera_view': 'center'}))
274
+ cols[2].button("➡️ Right", on_click=lambda: st.session_state.update({'camera_view': 'right'}))
275
  cols = st.columns(3)
276
+ cols[0].button("↙️ Bottom-Left", on_click=lambda: st.session_state.update({'camera_view': 'angle3'}))
277
+ cols[1].button("⬇️ Bottom", on_click=lambda: st.session_state.update({'camera_view': 'back'}))
278
+ cols[2].button("↘️ Bottom-Right", on_click=lambda: st.session_state.update({'camera_view': 'angle4'}))
279
 
280
  st.markdown("### ➕ Add Media Files")
281
  ups = st.file_uploader("Add files (png, jpeg, obj, glb, mp4, etc.):", accept_multiple_files=True)