Difference between revisions of "User:Nexii Malthus"

From Second Life Wiki
Jump to navigation Jump to search
Line 21: Line 21:
== Current ==
== Current ==
=== Vertical Life Client ===
=== Vertical Life Client ===
My own efforts to innovate the metaverse as we know. Attacking the worst problems from the best angles with the best solutions.
My own efforts to innovate the metaverse as we know.  
 
Vertical Life Client
[http://nexii.ordoimperialis.com/ 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, under development
Motion Editor, development stopped.


=== Simple Stuff ===
=== Simple ===


[[FastConeSpread|Fast Cone Spread Algorithm]]
[[FastConeSpread|Fast Cone Spread Algorithm]]
Line 63: Line 62:




= Other =
= Random Notes =


How I remember how to do rotation calculations:
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 relative rotation within the outer global rotation.
Rotation = Local / Global;
You can also do interchangly replace Local with Relative, and Global with World, if they are easier to remember.
 
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.
:...Bother to do this TODO list sometime.
 
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

Nexii Malthus

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

Script Collaboration

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

Fast Cone Spread Algorithm

Progress Bar

Utilities, to-be-opensourced

Depecrated

Basic A-Star Pathfinder

Click And Drag UI Component

User Interface Project


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.