[1] https://www.youtube.com/watch?v=HrwxbQj5mj0
[2] https://github.com/felipereigosa/mock-mechanics
[3] https://www.youtube.com/c/MockMechanics
Channel trailer with some of the new machines - https://www.youtube.com/watch?v=VQiA42ReNYE
1–8 of 8 posts
[1] https://www.youtube.com/watch?v=HrwxbQj5mj0
[2] https://github.com/felipereigosa/mock-mechanics
[3] https://www.youtube.com/c/MockMechanics
Channel trailer with some of the new machines - https://www.youtube.com/watch?v=VQiA42ReNYE
Thank you so much for your effort on this - this looks like an absolute god send for people looking to build intuition while carrying out self directed learning.
Does the software have capacity to simulate electric circuits as well? For example - if one were to design an alternate synth keybed with aluminium bars and springs, could you convert the pressure from springs (or similar mechanism) to voltage (and see the voltage on a scope?) i can see things like garage door, and a bunch of things that look like IC chips in your videos. So it looks like it is possible? But i'm not entirely sure.
i guess im asking how realistic it would be to prototype something like a modular synth controller in this software?
EDIT:the website you mentioned is newly created - will you be uploading user manual to the Docs section soon? :)
(let [[track-name wagon-name] (if (= (get-in world [:parts part-1-name :type]) :track)
[part-1-name part-2-name]
[part-2-name part-1-name])
track (get-in world [:parts track-name])
wagon (get-in world [:parts wagon-name])
track-position (get-part-position world track-name)
wagon-position (get-part-position world wagon-name)
layer (apply min (:visible-layers world))
color-1 (new Color 10 10 10)
gear (create-part :gear color-1 layer (:info world))
gear-name (gen-keyword :gear)
track-plane (get-track-plane track)
axis (vector/normalize (get-track-direction track))
offset (vector/multiply
axis
(point-plane-distance wagon-position track-plane))
gear-transform (combine-transforms
(:transform track)
(make-transform offset [1 0 0 0]))
wagon-parent-name (get-parent-part world wagon-name)
wagon-parent (get-in world [:parts wagon-parent-name])
wagon-parent-direction (get-track-direction wagon-parent)
gear-position (get-transform-position gear-transform)
point (point-line-projection gear-position [wagon-position wagon-parent-direction])
to-wagon (vector/normalize (vector/subtract point gear-position))
d (point-plane-distance
wagon-position
(line->plane [track-position to-wagon]))
color-2 (new Color 128 128 128)
rack (create-part :rack color-2 layer (:info world))
rack-name (gen-keyword :rack)
gear-position (get-transform-position gear-transform)
h-distance (point-line-distance
(get-part-position world wagon-parent-name)
[gear-position to-wagon])
wagon-parent-length (second (:scale wagon-parent))
parallel-offset (- (/ wagon-parent-length 2) h-distance)
parallel-offset (vector/multiply
(vector/normalize wagon-parent-direction) parallel-offset)
perpendicular-offset (vector/multiply to-wagon -0.125)
wagon-rotation (get-rotation-component (:transform wagon))
rack-angle (vector/angle (apply-transform wagon-rotation [-1 0 0])
(vector/multiply to-wagon -1) wagon-parent-direction)
rack-transform (combine-transforms
(make-transform [0 0 0] [0 1 0 rack-angle])
(combine-transforms
(:transform wagon)
(make-transform (vector/add parallel-offset perpendicular-offset)
[1 0 0 0])))
tooth-height 0.09
radius (- d 0.175 tooth-height)
scale-1 [(* radius 2) 0.2 (* radius 2)]
rack-length (+ wagon-parent-length 0.0)
scale-2 [0.1 rack-length 0.2]
w (set-value-0-transform world track-name)
p1 (get-in w [:parts track-name])
track-1-rotation (get-rotation-component (:transform p1))
track-1-x (apply-transform track-1-rotation [1 0 0])
angle-offset (- (vector/angle track-1-x to-wagon axis))
sign (- (vector/dot-product to-wagon
(vector/cross-product
wagon-parent-direction
(get-track-direction track))))]I have been studying Geometric Algebra, and I wondered how hard would it be to try and duplicate your vector lib in GA. I am also a beginner with Clojure, but not Lisp, and this is something I can get interested in to learn Clojure. Thank you so much!