[Matrix-SIG] vecmath lib for Python

siegel siegel@eico.com" <siegel@eico.com
Tue, 2 Nov 1999 19:03:59 -0500


Attached 
Python vecmath Version .20
November 2, 1999 
Done by Arthur Siegel, ajs@ix.netcom.com <mailto:ajs@ix.netcom.com> 
Based on the following suppositions: 
	1- libraries are good for, among other things, helping 
	people d	oing similar things stay on the same page, and 
	develop off one another 
	2-libraries without good documentation aren't very useful. 
	3-writing code is more fun than writing documentation 
	4-writing Python is more fun than writing Java. 
	5-I would like more company in writing 3d OpenGL stuff off of Python 
	and there might be a population of folks who are interested in 3d but 
	not particularly interested in wading into the Numeric library directly. 

the following arrangement was (wink) reached with the folks at 
Sun MicroSystems: 
I allowed them to port my vecmath library extension to Numeric as a 
Java3d extension in exchange for their services in writing documentation 
They have done a credible job. It is available as part of the Java3d
documentation at <http://java.sun.com/products/java-media/3D/> 
I am looking for feedback, suggestions, help. My quaternion understanding sucks. 
I also have some PyOpenGL stuff ('dynamic geometry') written off of the vecmath library that I will be
trying to talk David Ascher into including in the demos of the distribution, once I scale it down a bit to demo size. 
I would be happy to have anyone take a look but am without a site presence. 
Email me if interested. 
 

begin 600 pythonx.zip
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
D5F5C;6%T:%1E<W0N<'E02P4&``````,``P"M````41X`````
`
end