Index: code/branches/physics/src/orxonox/CMakeLists.txt
===================================================================
--- code/branches/physics/src/orxonox/CMakeLists.txt	(revision 2047)
+++ code/branches/physics/src/orxonox/CMakeLists.txt	(revision 2056)
@@ -107,5 +107,4 @@
   tinyxml_orxonox
   tolualib_orxonox
-  ogreode_orxonox
   LibLinearMath
   LibBulletCollision
Index: code/branches/physics/src/orxonox/objects/HelloBullet.cc
===================================================================
--- code/branches/physics/src/orxonox/objects/HelloBullet.cc	(revision 2047)
+++ code/branches/physics/src/orxonox/objects/HelloBullet.cc	(revision 2056)
@@ -42,4 +42,7 @@
 #include "GraphicsEngine.h"
 
+#include "util/Sleep.h"
+
+
 namespace orxonox
 {
@@ -50,25 +53,106 @@
  	   RegisterObject(HelloBullet);
   	   COUT(0) << "HelloBullet loaded" << std::endl ;
-           int maxProxies = 1024
+           int maxProxies = 1024;
 
 
- 	   btVector3 worldAabbMin(-10000,-10000,-10000);
-	   btVector3 worldAabbMax(10000,10000,10000);
-    	   btAxisSweep3* broadphase = new btAxisSweep3(worldAabbMin,worldAabbMax,maxProxies);
+        btVector3 worldAabbMin(-10000,-10000,-10000);
+        btVector3 worldAabbMax(10000,10000,10000);
+        btAxisSweep3* broadphase = new btAxisSweep3(worldAabbMin,worldAabbMax,maxProxies);
 
-	    // Set up the collision configuration and dispatcher
-            btDefaultCollisionConfiguration* collisionConfiguration = new btDefaultCollisionConfiguration();
-            btCollisionDispatcher* dispatcher = new btCollisionDispatcher(collisionConfiguration);
+        btDefaultCollisionConfiguration* collisionConfiguration = new btDefaultCollisionConfiguration();
+        btCollisionDispatcher* dispatcher = new btCollisionDispatcher(collisionConfiguration);
 
-            // The actual physics solver
-            btSequentialImpulseConstraintSolver* solver = new btSequentialImpulseConstraintSolver;
+        btSequentialImpulseConstraintSolver* solver = new btSequentialImpulseConstraintSolver;
 
-            // The world.
-            btDiscreteDynamicsWorld* dynamicsWorld = new btDiscreteDynamicsWorld(dispatcher,broadphase,solver,collisionConfiguration);
+        dynamicsWorld = new btDiscreteDynamicsWorld(dispatcher,broadphase,solver,collisionConfiguration);
+
+        dynamicsWorld->setGravity(btVector3(0,-10,0));
+
+
+        btCollisionShape* groundShape = new btStaticPlaneShape(btVector3(0,1,0),10);
+
+        btCollisionShape* fallShape = new btSphereShape(1);
+
+
+        btDefaultMotionState* groundMotionState = new btDefaultMotionState(btTransform(btQuaternion(0,0,0,1),btVector3(0,-1,0)));
+        btRigidBody::btRigidBodyConstructionInfo
+                groundRigidBodyCI(0,groundMotionState,groundShape,btVector3(0,0,0));
+        btRigidBody* groundRigidBody = new btRigidBody(groundRigidBodyCI);
+        dynamicsWorld->addRigidBody(groundRigidBody);
+
+
+        btDefaultMotionState* fallMotionState =
+                new btDefaultMotionState(btTransform(btQuaternion(0,0,0,1),btVector3(0,100,0)));
+        btScalar mass = 1000;
+        btVector3 fallInertia(0,0,0);
+        fallShape->calculateLocalInertia(mass,fallInertia);
+        btRigidBody::btRigidBodyConstructionInfo fallRigidBodyCI(mass,fallMotionState,fallShape,fallInertia);
+        fallRigidBody = new btRigidBody(fallRigidBodyCI);
+        dynamicsWorld->addRigidBody(fallRigidBody);
+
+ 
+
+//load floor mash
+        Ogre::SceneManager* sceneMgr = GraphicsEngine::getInstance().getLevelSceneManager();
+
+        int i = 0;
+        Ogre::StaticGeometry* floor;
+        floor = sceneMgr->createStaticGeometry("StaticFloor");
+        floor->setRegionDimensions(Ogre::Vector3(160.0, 100.0, 160.0));
+        // Set the region origin so the center is at 0 world
+        floor->setOrigin(Ogre::Vector3::ZERO);
+        for (Real z = -80.0; z <= 80.0; z += 20.0)
+        {
+            for (Real x = -80.0; x <= 80.0; x += 20.0)
+            {
+                std::string name = std::string("Ground") + convertToString(i++);
+                Ogre::Entity* entity = sceneMgr->createEntity(name, "plane.mesh");
+                entity->setQueryFlags (1<<4);
+                entity->setCastShadows(false);
+                floor->addEntity(entity, Ogre::Vector3(x,0,z));
+            }
+        }       
+
+        floor->build();
+
+
+// crate
+
+        entity_ = sceneMgr->createEntity("crate","crate.mesh");
+        entity_->setQueryFlags (1<<2);
+        sceneNode_ = sceneMgr->getRootSceneNode()->createChildSceneNode("crate");
+        sceneNode_->attachObject(entity_);
+        entity_->setNormaliseNormals(true);
+        entity_->setCastShadows(true);
+	sceneNode_ -> setPosition(Vector3(0,100,0));
+
+
+      
+
+
     }
 
     HelloBullet::~HelloBullet()
     {
-     // empty
+     //  dynamicsWorld->removeRigidBody(fallRigidBody);
+     //   delete fallRigidBody->getMotionState();
+     //   delete fallRigidBody;
+
+     //   dynamicsWorld->removeRigidBody(groundRigidBody);
+     //   delete groundRigidBody->getMotionState();
+     //   delete groundRigidBody;
+
+
+     //   delete fallShape;
+
+     //   delete groundShape;
+
+
+     //   delete dynamicsWorld;
+     //   delete solver;
+     //   delete collisionConfiguration;
+     //   delete dispatcher;
+     //   delete broadphase;
+
     }
 
@@ -95,5 +179,12 @@
     void HelloBullet::tick(float dt)
     {
-        // only update physics in a certain interval
+                dynamicsWorld->stepSimulation(1/60.f,10);
+                btTransform trans;
+                fallRigidBody->getMotionState()->getWorldTransform(trans);
+	        COUT(0) << "sphere height: " << trans.getOrigin().getY() << std::endl;
+		sceneNode_ -> setPosition(Vector3(0,trans.getOrigin().getY(),0));
+	//	msleep(20);
+		
+		
     }
 
Index: code/branches/physics/src/orxonox/objects/HelloBullet.h
===================================================================
--- code/branches/physics/src/orxonox/objects/HelloBullet.h	(revision 2047)
+++ code/branches/physics/src/orxonox/objects/HelloBullet.h	(revision 2056)
@@ -51,5 +51,8 @@
 
     private:
-
+        Ogre::SceneNode*                sceneNode_;
+        Ogre::Entity*                   entity_;
+	btRigidBody* fallRigidBody;
+  	btDiscreteDynamicsWorld* dynamicsWorld;
     };
 
