Looking good!

A few things:


On Fri, Jun 14, 2013 at 8:13 PM, Jason Moore <[email protected]> wrote:
> Tarun and I have started to hash out what the visualization API may look
> like and what functionality it will have.
>

Looking good!

A few things:

the four_by_four() method takes no argument(s)?  It seems it should
take a reference frame and a point in the case of a RigidBody, and a
point in the case of Particle.  These would define the reference frame
and or point that the returned transformation is with respect to.
Also, I think a better name would be .homogenous_transform_matrix() or
maybe just .transform_matrix().  Pretty much every 3d API uses this
terminology, including OpenGL.  See [0] or the link you have to WebGL
basics for more details.  The documentation of these matrices is often
poorly described if you are used to reading dynamics textbooks, I can
help with deciphering if needed.

What will the return type of this method be?  I think it should either
be a 4x4 sympy Matrix, a nested list with 4 elements, each being a
length 4 list, or maybe even a flat list of length 16.  Most 3D API's
represent this matrix as a length 16, column major array, so if you
return that, it might map directly to what is needed by your 3D API.
I know OpenGL uses length 16, column major arrays, and I bet 3.js has
a way to set the transformation matrix directly with a list/array of
this type.

What about the notion of a camera?  Often we define an inertial frame
compute the dynamics in, but that generally isn't the most useful
place to visualize things from.  Maybe this is built into the API you
are going to use?  Or will users need to pick the location and
orientation of their camera in the same script that derives the
equations of motion so that all the transformations can be obtained
with respect to the camera rather than the inertial frame?  Just
something to think about.

Here is an example of how I form the 4x4 transformation matrices [1]
from within sympy (I do it as numpy arrays of shape (16,)), as well as
how I define my camera orientation [2] and location [3], in case that
is useful.

Keep up the good work!

Luke

[0] -- 
http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices/#Transformation_matrices
[1] -- 
https://github.com/hazelnusse/bicycle.model/blob/master/derivation/derivation.py#L40
[2] -- 
https://github.com/hazelnusse/bicycle.model/blob/master/derivation/derivation.py#L229
[3] -- 
https://github.com/hazelnusse/bicycle.model/blob/master/derivation/derivation.py#L342


> The results are starting to formulate here: https://pydy.org/visualization
>
> There is also a basic proof-of-concept here:
> https://github.com/PythonDynamics/pydy_examples/pull/9
>
> Please take a look and give us some feedback. We need to hear more about
> what others may want it to do. We also need some help sorting out how things
> will be structured for python to server up browser based visualizations and
> what the javascript/python interaction will be.
>
> Jason
> moorepants.info
> +01 530-601-9791
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sympy.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>



--
"People call me a perfectionist, but I'm not. I'm a rightist. I do
something until it's right, and then I move on to the next thing."
-- James Cameron

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to