From Second Life Wiki
Skills: programming, scripting, building, sculpties, textures, animation, design and architecture.
I consider myself pretty much an Ace of all trades.
My passion is to excel in creation.
To break unknown barriers, to think outside the box.
With the knowledge of other skills, I can mix, I can understand the limits of each skill, and the possibilities of each one. It is a joy, when you know, that you can bring an idea, from mere beginnings, up to a fully polished successful product. I like to therefore embody myself, as the very origin of creation in SL, you will often see me wearing my plywood cubitar.
Long-time resident (6.3yrs~?)
Avid game developer and content creator
Vertical Life Client
My own efforts to innovate the metaverse as we know. Vertical Life Client
Vertical Life LSL API
I would love to know where and what you use those scripts for, I can only begin to imagine the possibilities with the geometric functions and the hierarchics system.
- Interpolation Library, partially open-sourced.
- Geometric Library, large collection of handy 3D maths functions.
- Physics Functions, partially open-sourced.
- Hierarchics, a self-aware, optimized and efficient joint system.
- Utilities, to-be-opensourced
- Navigation Spaces Pathfinder, closed source, development discontinued, code re-used.
- Motion Editor, development stopped, code re-used.
Mnemonic I use to remember rotation order:
To add rotation,
- Rotation = Local * Global;
To take away rotation,
- Rotation = Local / Global;
The word-semantics here help how to visualize rotation addition. Other useful distinctions may be Object-Frame for Local and Absolute-Frame for Global.
Taken from Linden Labs' opensourced client, project llmath, file m3math.h Not sure why, but it helped me matrices suddenly 'click' for me. Before I was unable to understand the way a matrix worked, as being dyslexic hindered my understanding of basic mathematic concepts severely. The following representation/imaginative explanation helped a lot. Hope it may help anyone else if they find this.
// LLMatrix3 = | fx fy fz | forward-axis // | lx ly lz | left-axis // | ux uy uz | up-axis
// Creating Rotation Matricies From Object Axes // -------------------------------------------- // Suppose you know the three axes of some object in some "absolute-frame". // If you take those three vectors and throw them into the rows of // a rotation matrix what do you get? // // R = | X0 X1 X2 | // | Y0 Y1 Y2 | // | Z0 Z1 Z2 | // // Yeah, but what does it mean? // // Transpose the matrix and have it operate on a vector... // // V * R_transpose = [ V0 V1 V2 ] * | X0 Y0 Z0 | // | X1 Y1 Z1 | // | X2 Y2 Z2 | // // = [ V*X V*Y V*Z ] // // = components of V that are parallel to the three object axes // // = transformation of V into object frame // // Since the transformation of a rotation matrix is its inverse, then // R must rotate vectors from the object-frame into the absolute-frame.
transpose means to switch the rows and columns, imagine applying a 90 degree rotation on the array, see above how X0, X1 and X2 occupied the first row, and instead now occupies the first column in the transposed matrix.
My little userpage shortcut to the LSL Portal.
Todo, but never really do
- Create functions for Geometric for working out Normals on collisions.
- Multi-output functions at that maybe? Should better return a list...
- Replace global-variable-output functions with list returns.
- Add spline and vector lists functions whenever I can be bothered
- Find a good way to add all the other fun ways to ease in, ease out and ease in&out, either do it via lots of little functions (better performance generally), or maybe one big one (easier to switch between them at runtime)?
- Find a way to untangle a skeleton system easily. Example when rezzed via duplication or scripts reset while joints at arbitrary rotations, so that system can become highly reliable.