Generative Art - Project 3 - Brachiation
03/08/2022
Here we go - the final project.
To give the best effort to my capstone from here on out, I wanted to focus on brachiation in this project as well. How can this project be an artistic experience?
Unreal tutorials for the
- Physics Asset Editor
- Blueprint system and transitioning to C++
- C++ interface for any matrix math, possibly
reading through the provided Matlab code
converting the shoulder-elbow-wrist joint chains to single bones for mechanics, solve, then readding secondary physics-based animation afterward
3D path determination - may not be possible or too complicated
going over some more differential equations
Runge-Kutta implementation or ode45 solution
differential equation solver in Unrealhttps://forums.unrealengine.com/t/how-to-create-a-unicycle-model-in-unreal-engine/467718/2
using the Boost library's odeint library as a substitute for ode45; see https://forums.unrealengine.com/t/how-to-add-boost-library-to-an-unreal-engine-4-project-visual-studio-2013/9680/4 for procedure and https://stackoverflow.com/questions/26747492/comparison-of-odeints-runge-kutta4-with-matlabs-ode45 for viable substitutes in odeint (runge_kutta_dopri5)
Swing and locomotion control paper https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=257888
Another paper: Model-Based Design and Evaluation of a Brachiating Monkey ...
Or simplified problem domain: generate swings for a variety of speeds/distances, blend between them
How can this result in a piece, not a tool?
The tool can be used to generate a motion path
Use blueprints to determine state and set angular motors from that, how to work in the PD control?!
Using angular motors: https://docs.unrealengine.com/4.26/en-US/Resources/ContentExamples/Physics/1_6/
How will movement be scored? Read Karl Sim's work
Implement DiffEQ solver on its own first, then bring into Unreal after you have the math down
03/10/2022
Today, I presented a blueprint version of my double pendulum in class. The logic is simple; when the free arm's Z velocity goes from positive to negative, the free arm is locked and the locked arm is released. This is very smooth, but affords no control as to where the handholds should be.
03/24/2022
Today I presented some progress in class on the pendulum solver. At the moment, I am adding impulses based on the distance of the free arm to the next handhold point - however, I will also need to keep in mind the other forces that are currently acting on the object.
03/27/2022
A list of tasks for today: Think about how the constraint force and gravity combine, figure out how to offset Work on a smarter handhold approach system so that limbs don’t just snap Find a way to better enforce the angle constraints and control them using the motor. Calculate an angular orientation Figure out how to limit the twisting at the handholds (rotation around Z, up axis)
04/08/2022
Today, I defended my capstone; the focus of the work was setting up the technology behind brachiation and getting it to work in the engine. The focus of the generative art portion of my presentation is on making the piece into something more suitable for exhibition. I plan to gamify the experience, as the program is already in a game engine. The most critical piece is to add an interface to start and stop the simulation, and drag and drop to change positions of the handholds.
04/15/2022
I will be working on the UI of the application next as the final project won't involve the Unreal Editor. Here is an inspiration for the interface I plan to use (it's relatively simple).
04/22/2022
This week I spent time working on the Unreal Motion Graphics system, as it would let me add an interface to my game. Although the goal was purely aesthetic, I quickly saw many different technical concepts emerge. The most critical issue had to do with weird physics during a restart. It was necessary for restarts to work within the interface as that is part of the user experience.