To sage-dev
Can someone please explain to me what traits are in the context of
tvisual?  The wiki page for it (http://www.enthought.com/traits from
the page https://svn.enthought.com/enthought/wiki/TVTKIntroduction) is
a dead link.
A google search of either vpython.org or svn.enthought.com produces
many results for visual, but none for tvisual.  I am guessing that
tvisual is part of TVTK and visual part of VPython.

I see tvtk at the page https://svn.enthought.com/enthought/wiki/TVTKIntroduction
(traited vtk), and vtk at http://mayavi.sourceforge.net/.
http://www.vtk.org/ says that vtk is the visualization toolkit.

Jason Grout said "Since we also already have momentum for
incorporating mayavi.."  Can someone please give me details.  Is Jason
saying that Sage-dev is in the process of making mayavi part of Sage,
so it would be easy to use parts of mayavi?

What are the benefits of using tvtk over vpython?  Vpython is faster.
How does Tvtk has a cleaner API?

Does pydy handle collisions and contact forces?  I have read papers
that say that calculating contact forces for a large number of
simultaneously contacting rigid bodies is an NP-hard problem that
involves quadratic programming.  There is lots of interdependency.
You can have a normal force and friction force at each contact point.
But you have to make sure that normal forces only push, not pull, and
you have to make sure that kinetic friction opposes motion (or pending
motion), and static friction is less than mu * Fn.  During a collision
you have to have an infinite force for an instant to keep the objects
from colliding.  If you take the time integral of force, you get
impulse, which is a change in momentum (mass times velocity), so what
you are basically saying is that you have an instantaneous transfer of
momentum.  If you have an ellipse roll, the normal force will increase
sharply to a maximum at the location of least curvature.  If you have
a "rounded square" defined by a certain equation, the normal force
will reach infinity at the location of zero curvature.  However, the
area under the curve is finite, meaning that an instantaneous impulse
is not occurring.  You just need a very good numerical integrator.
Including kinetic friction can lead to situations where an
instantaneous impulse is needed to prevent inter-penetration at times
other than a collision.  Additionally, in some cases there are
multiple allowed solutions for where the objects go.

I have considered using the penalty method for handling collisions,
which involves allowing inter-penetration and a virtual spring force
that appears during inter-penetration.  However very large spring
constants must be used, leading to stiff equations.  One benefit of
penalty methods is that the multiple solutions in impulse methods go
away-which solution you end up with depends on whether the objects
that are touching are inter-penetrating or just touching.

I am also considering handling only collisions between two objects at
a time (with rotation and friction), since most problems I want PPS
(PythonPhysicsSimulation) to handle would be covered.  One problem
that might be left out is two gliders on a track colliding, but for
this problem, you could lock the gliders to the track and consider the
gliders hitting as collision of two bodies, not three.  I think that
if you are careful, you could properly handle the gliders on a track
colliding with only two-object collision handling.

What I want to make is a program that does for freshman physics
(springs, ramps, collisions, rotation, pulleys, strings, etc) what my
circuit program at circuitengine.com does for freshman circuits (and
hopefully more).  You click a button and make a spring, ramp, block,
pulley etc.  You right click an object and adjust its properties.  You
hit start.  You can make graphs.  You can ask it to tell you how long
it takes for something to happen (e.g. height of object A is 10m), and
it uses some sort of decrease and conquer (binary search in the worst
case, but better can be done if we make an estimate of when the event
happens) to find the exact time that that happens.

Could anyone recommend any programs that have this sort of
functionality for me to look at?

Does anyone have any thoughts on using OpenModelica?

Another question:
Time permitting, I would like to be able to solve symbolic physics
problems.  Instead of just giving initial conditions and solving for
later values, it would be nice to say (symbolically) "it takes t
seconds for the ball to reach the basket, at what angle was it
thrown".  How might you go about this?  I think that this could be
done using a theorem prover of sorts that searches the space of
theorems that can be proven from a small set of axioms and givens and
a set of manipulation rules.  Of course this is an NP-complete problem
that is intractable in general (think Fermat's last theorem), but most
problems given to freshman physics students are only a few steps long,
meaning that the tree of possible proofs is relatively small and can
be exhaustively searched.
Does Sage have the ability to symbolically simplify "sin^2(theta)+cos^2
(theta)" to "1"?

For numeric problems such as "at what angle must the ball be thrown to
reach the basket in 2 seconds?", it might be possible to use some sort
of binary search to find the correct value.

Here is a link to my (very early) pre-draft of my writeup, so that you
can view the bibliography.
http://docs.google.com/View?id=df9q29vh_45dfx2wmfg

I declare Crocker's rules.  http://www.sl4.org/crocker.html

Kevin Stueve


On Sep 23, 3:31 pm, Fernando Perez <fperez....@gmail.com> wrote:
> On Wed, Sep 23, 2009 at 4:41 AM, Prabhu Ramachandran
>
> <pra...@aero.iitb.ac.in> wrote:
> > Thanks Fernando.  The speed issue is still true but I wouldn't blame
> > traits since that isn't the source of the bottleneck. I think there are
> > a little too many events and too many renders. I have not had the time
> > to profile it carefully.
>
> Thanks for the clarifications, Prabhu.  I remembered the performance
> drop, but wasn't sure what all of the reasons were under the hood and
> I was worried I could misrepresent the issue.
>
> It would really be great to have vpython-like performance with the
> clean tvtk api!  Here's to hoping it's possible :)
>
> Cheers,
>
> f
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to