diff --git a/public/index.html b/public/index.html
index 59d1326120502fe72468c136e2775fdfb0246fe6..f8a88bb393a5d428b3934b109d4f91d6f8d35bad 100644
--- a/public/index.html
+++ b/public/index.html
@@ -7,51 +7,55 @@
   <style>
     body {
       margin: 0;
-      font-family: Arial, sans-serif;
-      background-color: #f0f0f0;
-      color: #333;
-      height: 100vh;
       overflow: hidden;
+      font-family: Arial, sans-serif;
     }
 
-    .container {
-      position: absolute;
-      top: 50%;
+    /* Menüleiste */
+    .menu-bar {
+      position: fixed;
+      bottom: 0;
       left: 50%;
-      transform: translate(-50%, -50%);
-      text-align: center;
-      background: rgba(0, 0, 0, 0.6);
-      color: white;
-      padding: 20px;
-      border-radius: 10px;
+      transform: translateX(-50%);
+      display: flex;
+      gap: 10px;
+      background: rgba(0, 0, 0, 0.7);
+      padding: 10px;
+      border-radius: 10px 10px 0 0;
+      z-index: 10;
     }
 
-    button {
-      background-color: #4CAF50;
+    .menu-bar button {
+      background: #2196F3;
       color: white;
-      padding: 10px 20px;
       border: none;
-      border-radius: 5px;
+      padding: 10px 20px;
+      font-size: 16px;
       cursor: pointer;
+      border-radius: 5px;
+      transition: background 0.3s;
+    }
+
+    .menu-bar button:hover {
+      background: #1E88E5;
     }
   </style>
   <script src="https://unpkg.com/three@0.126.0/build/three.js"></script>
   <script src="https://unpkg.com/three@0.126.0/examples/js/loaders/GLTFLoader.js"></script>
 </head>
 <body>
-  <div class="container">
-    <h1>GeoVis AR Projekt</h1>
-    <p>Starte AR, um dein Menü zu sehen!</p>
-    <button onclick="activateXR()">Start AR</button>
+  <!-- Menüleiste -->
+  <div class="menu-bar">
+    <button onclick="selectModel('car')">Auto</button>
+    <button onclick="selectModel('lamp')">Laterne</button>
   </div>
 
   <script>
-    let menu; // Menü-Objekt
+    let selectedModel = 'car'; // Standardauswahl
+    let models = {}; // Hier speichern wir die geladenen Modelle
+    let reticle;
 
     async function activateXR() {
-      // UI ausblenden
-      document.querySelector('.container').style.display = 'none';
-
       // WebGL-Renderer erstellen
       const canvas = document.createElement('canvas');
       document.body.appendChild(canvas);
@@ -69,52 +73,87 @@
       light.position.set(10, 10, 10);
       scene.add(light);
 
-      // Menü erstellen
-      const menuGeometry = new THREE.PlaneGeometry(0.5, 0.25); // Größe kleiner für AR
-      const menuMaterial = new THREE.MeshBasicMaterial({ color: 0x2196F3, side: THREE.DoubleSide });
-      menu = new THREE.Mesh(menuGeometry, menuMaterial);
-      scene.add(menu);
+      // Reticle (Platzierungshilfe)
+      const loader = new THREE.GLTFLoader();
+      loader.load("https://immersive-web.github.io/webxr-samples/media/gltf/reticle/reticle.gltf", (gltf) => {
+        reticle = gltf.scene;
+        reticle.visible = false;
+        scene.add(reticle);
+      });
 
-      // AR-Session starten
-      const session = await navigator.xr.requestSession('immersive-ar', { requiredFeatures: ['local-floor'] });
-      session.updateRenderState({
-        baseLayer: new XRWebGLLayer(session, gl)
+      // Modelle laden
+      loader.load("https://threejs.org/examples/models/gltf/RobotExpressive/RobotExpressive.glb", (gltf) => {
+        models.car = gltf.scene;
+      });
+      loader.load("https://immersive-web.github.io/webxr-samples/media/gltf/sunflower/sunflower.gltf", (gltf) => {
+        models.lamp = gltf.scene;
       });
-      const referenceSpace = await session.requestReferenceSpace('local-floor');
+
+      // AR-Session starten
+      const session = await navigator.xr.requestSession('immersive-ar', { requiredFeatures: ['hit-test'] });
+      session.updateRenderState({ baseLayer: new XRWebGLLayer(session, gl) });
+      const referenceSpace = await session.requestReferenceSpace('local');
+      const viewerSpace = await session.requestReferenceSpace('viewer');
+      const hitTestSource = await session.requestHitTestSource({ space: viewerSpace });
 
       session.requestAnimationFrame(onXRFrame);
 
+      // Hauptloop für AR-Rendering
       function onXRFrame(time, frame) {
-        const pose = frame.getViewerPose(referenceSpace);
-
         session.requestAnimationFrame(onXRFrame);
         gl.bindFramebuffer(gl.FRAMEBUFFER, session.renderState.baseLayer.framebuffer);
 
+        const pose = frame.getViewerPose(referenceSpace);
         if (pose) {
           const view = pose.views[0];
           const viewport = session.renderState.baseLayer.getViewport(view);
           renderer.setSize(viewport.width, viewport.height);
 
-          // Kamera aktualisieren
           camera.matrix.fromArray(view.transform.matrix);
           camera.projectionMatrix.fromArray(view.projectionMatrix);
           camera.updateMatrixWorld(true);
 
-          // Menü vor der Kamera platzieren
-          const cameraPosition = new THREE.Vector3();
-          camera.getWorldPosition(cameraPosition);
+          const hitTestResults = frame.getHitTestResults(hitTestSource);
+          if (hitTestResults.length > 0) {
+            const hitPose = hitTestResults[0].getPose(referenceSpace);
+            reticle.visible = true;
+            reticle.position.set(hitPose.transform.position.x, hitPose.transform.position.y, hitPose.transform.position.z);
+            reticle.updateMatrixWorld(true);
+          }
 
-          const cameraDirection = new THREE.Vector3();
-          camera.getWorldDirection(cameraDirection);
-
-          menu.position.copy(cameraPosition);
-          menu.position.add(cameraDirection.multiplyScalar(1)); // 1 Meter vor der Kamera
-          menu.lookAt(cameraPosition);
-
-          // Szene rendern
           renderer.render(scene, camera);
         }
       }
+
+      // Objekt bei Klick platzieren
+      session.addEventListener("select", () => {
+        if (reticle && models[selectedModel]) {
+          const clone = models[selectedModel].clone();
+          clone.position.copy(reticle.position);
+          clone.scale.set(0.5, 0.5, 0.5); // Skalierung anpassen
+          scene.add(clone);
+        }
+      });
+    }
+
+    // Modell auswählen
+    function selectModel(model) {
+      selectedModel = model;
+      console.log(`Ausgewähltes Modell: ${model}`);
+    }
+
+    // AR starten
+    if (navigator.xr) {
+      const startButton = document.createElement('button');
+      startButton.textContent = 'Starte AR';
+      startButton.style.cssText = "position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); padding: 15px; font-size: 18px;";
+      document.body.appendChild(startButton);
+      startButton.onclick = () => {
+        startButton.remove();
+        activateXR();
+      };
+    } else {
+      alert('WebXR wird von diesem Gerät oder Browser nicht unterstützt.');
     }
   </script>
 </body>