   [scene id {:keys [z radius inner-radius phi tx material]
              :or {z 0 radius 1 inner-radius 0 phi 360}}]
   (append
-   scene :geometry (name id)
-   (merge
-    (when tx (transform-common scene tx))
-    {:__type :disk
-     :__material material
-     :name [:string id]
-     :height [:float z]
-     :radius [:float radius]
-     :innerradius [:float inner-radius]
-     :phimax [:float phi]})))
+   scene :geometry id
+   {:__transform tx
+    :__type :disk
+    :__material material
+    :name [:string (name id)]
+    :height [:float z]
+    :radius [:float radius]
+    :innerradius [:float inner-radius]
+    :phimax [:float phi]}))
 
 (defn ply-mesh
   [scene id {:keys [mesh path export-path tx material smooth]}]
   (append
-   scene :geometry (name id)
-   (merge
-    (when tx (transform-common scene tx))
-    {:__type :plymesh
-     :__material material
-     :__mesh mesh
-     :__export-path (or export-path path)
-     :name [:string id]
-     :filename [:string (or path (str (name id) ".ply"))]
-     :smooth [:bool smooth]})))
+   scene :geometry id
+   {:__transform tx
+    :__type :plymesh
+    :__material material
+    :__mesh mesh
+    :__export-path (or export-path path)
+    :name [:string (name id)]
+    :filename [:string (or path (str (name id) ".ply"))]
+    :smooth [:bool smooth]}))
 
 (defn stl-mesh
   [scene id {:keys [mesh path export-path tx material]}]
   (append
-   scene :geometry (name id)
-   (merge
-    (when tx (transform-common scene tx))
-    {:__type :stlmesh
-     :__material material
-     :__mesh mesh
-     :__export-path (or export-path path)
-     :name [:string id]
-     :filename [:string (or path (str (name id) ".stl"))]})))
+   scene :geometry id
+   {:__transform tx
+    :__type :stlmesh
+    :__material material
+    :__mesh mesh
+    :__export-path (or export-path path)
+    :name [:string (name id)]
+    :filename [:string (or path (str (name id) ".stl"))]}))
 
 (defn lux-scene
   []

             :or {cone-angle 30 cone-delta 5 from [0 0 1] to [0 0 0]}
             :as opts}]
  (append
   scene :lights (name id)
   (merge
    (when tx (transform-common scene tx))
    (light-common scene opts)
    {:__type :spot-light
     :from [:point-vec [from]]
     :to [:point-vec [to]]
     :coneangle [:float (->degrees cone-angle)]

              :default    (assoc opts :autofocus [:bool true]))]
    (append-singleton scene :camera type opts)))

(defn light-group
  [scene id {:keys [gain] :or {gain 1.0}}]
  (append scene :light-groups id {:__gain gain}))

(defn light-groups
  [scene groups]
