Skip to content

Instantly share code, notes, and snippets.

@steveturner
Created March 12, 2013 17:23
Show Gist options
  • Save steveturner/5144957 to your computer and use it in GitHub Desktop.
Save steveturner/5144957 to your computer and use it in GitHub Desktop.
clojurescript and three.js
(ns modern-cljs.modern)
(def THREE js/THREE)
(def camera (THREE.PerspectiveCamera. 75 (/ window/innerWidth
window/innerHeight) 1 1000))
(defn position [c]
(.-position c))
(defn set-position [c v]
(let [[x y z] v]
(.set (position c) x y z))
c)
(def scene (THREE.Scene.))
(def geometry (THREE.IcosahedronGeometry. 200 1))
(def material (THREE.MeshBasicMaterial. ))
(set! (.-color material) 0x333)
(set! (.-wireframe material) true)
(set! (.-wireframeLinewidth material) 6)
(def mesh (THREE.Mesh. geometry material))
(.add scene mesh)
(def renderer (THREE.WebGLRenderer.))
(.setSize renderer window/innerWidth window/innerHeight)
(.appendChild (.-body js/document) (.-domElement renderer))
(defn render []
(set! (.-x (.-rotation mesh)) (+ (.-x (.-rotation mesh)) 0.01))
(set! (.-y (.-rotation mesh)) (+ (.-y (.-rotation mesh)) 0.02))
(.render renderer scene camera))
(defn animate []
(.requestAnimationFrame js/window animate)
(render))
(animate)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment