             [play-clj.ui :refer :all]))
 
 (def ^:const mass 10)
+
+(defn get-environment
+  []
+  (let [attr-type (attribute-type :color :ambient-light)
+        attr (attribute :color attr-type 0.3 0.3 0.3 1)]
+    (environment :set attr)))
+
+(defn get-camera
+  []
+  (doto (perspective 67 (game :width) (game :height))
+    (position! 10 10 10)
+    (direction! 0 0 0)))
 
 (defn get-material
   []

  (bit-or (usage :position) (usage :normal)))

(defn create-sphere-body!
  [screen]
  (let [shape (sphere-shape 2)
        local-inertia (vector-3 0 0 0)]
    (sphere-shape! shape :calculate-local-inertia mass local-inertia)
    (->> (rigid-body-info mass nil shape local-inertia)

         (add-body! screen))))

(defn create-sphere!
  [screen w h]
  (-> (model-builder)
      (model-builder! :create-sphere w h 4 24 24 (get-material) (get-attrs))
      model
      (assoc :body (create-sphere-body! screen (/ w 2)))))

(defn create-box-body!
  [screen half-w half-h]
  (let [shape (box-shape (vector-3 half-w half-h 1))
        local-inertia (vector-3 0 0 0)]
    (box-shape! shape :calculate-local-inertia mass local-inertia)
    (->> (rigid-body-info mass nil shape local-inertia)
