# HG changeset patch # User Robert McIntyre # Date 1395253453 14400 # Node ID 54ef2e06c3ef41eb72123734f7b3e945e59c76af # Parent cc99572410768cb5b18a69d24a4f9ee55dd87dbf gave main worm a consistent muscle order. diff -r cc9957241076 -r 54ef2e06c3ef assets/Models/worm/worm.blend Binary file assets/Models/worm/worm.blend has changed diff -r cc9957241076 -r 54ef2e06c3ef org/worm_learn.clj --- a/org/worm_learn.clj Wed Mar 19 13:21:49 2014 -0400 +++ b/org/worm_learn.clj Wed Mar 19 14:24:13 2014 -0400 @@ -11,6 +11,10 @@ (:import (com.aurellem.capture Capture IsoTimer)) (:import (com.jme3.math Vector3f ColorRGBA))) +(import org.apache.commons.math3.transform.TransformType) +(import org.apache.commons.math3.transform.FastFourierTransformer) +(import org.apache.commons.math3.transform.DftNormalization) + (use 'clojure.pprint) (use 'clojure.set) (dorun (cortex.import/mega-import-jme3)) @@ -58,10 +62,10 @@ worm-keys ["key-f" "key-r" "key-g" "key-t" - "key-y" "key-h" + "key-h" "key-y" "key-j" "key-u" - "key-i" "key-k" - "key-o" "key-l"]] + "key-k" "key-i" + "key-l" "key-o"]] {:motor-control (fn [effectors] (doall @@ -83,11 +87,11 @@ (def period 18) (def worm-muscle-labels - [:base-up :base-down + [:base-down :base-up :a-down :a-up - :b-up :b-down + :b-down :b-up :c-down :c-up - :d-up :d-down]) + :d-down :d-up]) (defn gen-wiggle [[flexor extensor :as muscle-pair] time-base] (let [period period @@ -166,10 +170,17 @@ (- 1) (Math/abs))) +(defn fft [nums] + (.transform + (FastFourierTransformer. DftNormalization/UNITARY) + (double-array nums) TransformType/FORWARD)) + +(def indexed (partial map-indexed vector)) + (defn wiggling? "Is the worm wiggling?" [experiences] - (vector:last-n experiences 200) + (map (comp first :muscle) (vector:last-n experiences 200)) )