Difference between revisions of "User:Nexii Malthus"
m (→Fun Stuff) |
|||
Line 21: | Line 21: | ||
== Current == | == Current == | ||
=== Vertical Life Client === | === Vertical Life Client === | ||
My own efforts to innovate the metaverse as we know | My own efforts to innovate the metaverse as we know. | ||
Vertical Life Client | |||
=== Vertical Life LSL API === | === Vertical Life LSL API === | ||
Line 34: | Line 33: | ||
=== Fun Stuff === | === Fun Stuff === | ||
[[Interpolation|Interpolation Library]], partially open-sourced | [[Interpolation|Interpolation Library]], partially open-sourced. | ||
[[Geometric|Geometric Library]], large collection of handy 3D maths functions. | [[Geometric|Geometric Library]], large collection of handy 3D maths functions. | ||
[[PhysicsLib|Physics Functions]], partially open-sourced | [[PhysicsLib|Physics Functions]], partially open-sourced. | ||
[[Hierarchics|Hierarchics]], a self-aware, optimized and efficient joint system | [[Hierarchics|Hierarchics]], a self-aware, optimized and efficient joint system. | ||
Navigation Spaces Pathfinder, closed source | Navigation Spaces Pathfinder, closed source, development discontinued. | ||
Motion Editor, | Motion Editor, development stopped. | ||
=== Simple | === Simple === | ||
[[FastConeSpread|Fast Cone Spread Algorithm]] | [[FastConeSpread|Fast Cone Spread Algorithm]] | ||
Line 63: | Line 62: | ||
= | = Random Notes = | ||
Mnemonic I use to remember rotation order: | |||
To add rotation, | |||
Rotation = Local * Global; | Rotation = Local * Global; | ||
The word semantics here help how to visualize rotation addition. | To take away rotation, | ||
Local being a | 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. | |||
<lsl> | |||
// LLMatrix3 = | fx fy fz | forward-axis | |||
// | lx ly lz | left-axis | |||
// | ux uy uz | up-axis | |||
</lsl> | |||
<lsl> | |||
// 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. | |||
</lsl> | |||
'''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]]. | My little userpage shortcut to the [[LSL Portal]]. | ||
=== Todo === | |||
=== Todo, but never really do === | |||
Geometric Library: | Geometric Library: | ||
:Create functions for [[Geometric]] for working out Normals on collisions. | :Create functions for [[Geometric]] for working out Normals on collisions. | ||
:Multi-output functions at that maybe? Should better return a list... | :Multi-output functions at that maybe? Should better return a list... | ||
:Replace global-variable-output functions with list returns. | :Replace global-variable-output functions with list returns. | ||
: | |||
Interpolation Library: | |||
: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)? | |||
Hierarchics: | |||
: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. |
Revision as of 04:46, 29 January 2010
Intro
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 (4.5yrs~?)
Avid game developer and content creator
Projects
Current
Vertical Life Client
My own efforts to innovate the metaverse as we know. Vertical Life Client
Vertical Life LSL API
LSL
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.
Fun Stuff
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.
Navigation Spaces Pathfinder, closed source, development discontinued.
Motion Editor, development stopped.
Simple
Utilities, to-be-opensourced
Depecrated
Random Notes
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.
<lsl> // LLMatrix3 = | fx fy fz | forward-axis // | lx ly lz | left-axis // | ux uy uz | up-axis </lsl>
<lsl> // 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. </lsl>
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
Geometric Library:
- 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.
Interpolation Library:
- 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)?
Hierarchics:
- 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.