J has a number of ways to produce 3D graphics: the  native OpenGL
support is very nicely integrated with the system; the labs and
demos showcase a higher-level cover API for frequently-used
operations (begin, end, lists, colors, etc.); there is turtle
graphics API (Brian Schott) for directional animation. These are
powerful and interesting PROGRAMMATIC tools.

For those who prefer a DECLARATIVE way to describe things, clarity
and expressiveness are more important than power or completeness.
For 3D these have been languages that describe worlds, such as
VRML (and Web3D's X3D). It is very easy, with very little tool-specific
training, to both read and write the 3D definitions.

Visual Python or VPython strikes a sweet spot by using an interpreted
language Python, and a declarative API for 3D scenes and motion.

Intro with many examples: see how you can start figuring it
out instantly.
   http://www.vpython.org/VPython_Intro.pdf

Curve documentation: an example of one primitive.
   http://vpython.org/contents/docs/visual/curve.html

Contributed programs: many further examples in use (like Cherry Tree).
   http://vpython.org/contents/contributed.html

The source for this intuitive success is probably the instructive
origins of the toolkit for students with non-essential programming skills.
A tool created by non-programmers for non-programmers.

For experienced programmers or 3D creators, such intuitive API
means productivity. It still allows focusing more on the 3D layout
rather than the implementation details.

For J proud of its notation and consistent design, it would be 
beneficial to continue to sharpen this tradition in frameworks.

It seems the secret is in consistent use of small expressive paradigms.
For VPython the ingredients are: Python constructs; objects and 
properties; named parameters; consistent simplified set of 3D API;
no mixing of layers (OpenGL is inaccessible directly); all 3D
objects are first-class (system primitives look the same as user-defined).
Use of plain English words instead of abbreviations and prefixes
is helpful too.


      
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to