473,756 Members | 4,256 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Requirements For A Visualization Software System For 2010

REQUIREMENTS FOR A VISUALIZATION SOFTWARE SYSTEM FOR 2010

Xah Lee, 2007-03-16

In this essay, i give a list of requirements that i think is necessary
for a software system for creating scientific visualization for the
next decade (2007-2017).

(for a HTML version with images, please see
http://xahlee.org/3d/viz.html )

For the past 10 years, i have been strongly interested in mathematical
visualization. I'm not a professor, and am not doing it for the
educational purposes per se. Geometry has just been beautiful for me,
and i'm also a professional programer. Programing computers to
visualize geometric theorems or geometric objects, has been a immense
personal pleasure. A particular aspect of visualization, is to design
it so that when viewed, it forces a immediate and crystal clear
understanding of the object or theorem, to its viewers.

I have for the past couple years sought for a software platform/system
where i can build 3D objects, with abilities to do interactive
manipulation (such as moving a slider to change a parametric surface's
parameter), dynamic rotation (viewing from different angles
instantaneously ), animations (such as morphing that shows geometric
processes), and most of all, walk-thru in it as if it is a building
(e.g. the perception of actually walking on a moebius strip↗ or Klein
bottle↗ is vastly different than just viewing it.).

--------
Requirement: Real-Time 3D Rotation

For math visualization, it is absolutely necessary to be able to
rotate the object in real-time. For example, when viewing a complex
surface, a molecule structure, or the design of a complex device. This
requirement is so basic it warrants no further explanation.

above: The Chen Gackstatter minimal surface as shown by the software
3D-XplorMath ↗. This surface has several 3-fold symmetries, but a
static image does not show this. (Live Rotation with Java Applet)

--------
Requirement: Real-time Interactivity

The programer should be able to build buttons and sliders that change
parameters and have the object reflect these changes visually right
away.

This real-time interactivity is frequently needed. For example, most
math visualizations involve a function, a process, or a geometric
object, that varies by parameters, and the key to the visualization is
showing how the parameter effect the graph or object. Some Examples
follows.
Example: Moebius Transformation

above: A software that plots a complex function (the Moebius
transformationâ †—), by showing the pre-image and post-image of the
function. The function is keyed by various parameters that can be
represented as points in the plane. Dragging these points will change
the image interactively. Source: MoeApplet by Paul Murray ↗
Example: Regular Polytopes

above: a Java applet showing a slice of 4-dimensional symmetric
polytopes↗ , with sliders that change the polytope's parameters.
Dragging the polytope will rotate it in real-time. Hyperstar Java
Applet by Mark Newbold ↗.
Example: Plane Geometry

above: A interactive plane geometry software showing a Equiangular
Spiral and its inverse curve , with respect to a point O. Equiangular
spiral is a family of curves varying by a parameter θ, from 0 to π/2.
This parameter can be changed by dragging the point E of the angle
DAE, and the corresponding curve will be shown (blue). Its inverse
curve with respect to the point O is shown in pink. Dragging the point
O will change the position of O, and corresponding inverse curve will
be shown in real-time.

above: A plane geometry software demonstrating Bezier curve. User can
drag the poins to very the input, and see the polynomial change shape
in real-time. Java Applet version.
Example: Conic Sections

Computing power today are some 50 times faster than a decade ago.
However, math visualizations, have hardly advanced. For example, let's
consider the simple task of plotting of polynomial equations. As we
know, 2nd degree polynomials of 2 variables are conic sections. It
would nice, that the program can show the general form A x^2 + B x y +
C y^2 + D x + E y + F == 0 and let users change the constants by
sliders, and have the graph change on the fly. Such a application
would give immense feedback that reinforces learning, which is what
visualization is about. Similiarly, this can be done for 3rd degree
polynomials, and the visualization of polynomials of 3 variables.

There are tens, if not hundreds, elementary equation and function
graphing software. However, it is almost impossible to find one that
shows the power of interactivity described above. Apple Computer Inc,
bundled with OS X as current as of March 2007, a plotting software
(called Grapher↗) that has zero interactivity features. And
Mathematica's abilities for plotting polynomial equations in as late
as 2005, is basically the same as 1996. Its ability for visual
experiment and learning of polynomials of 3 variables is practically
zero.

I have personally played with perhaps over 20 major plotting software
over the past 15 years, and i only know one that has this feature.
(see Nucalc↗)

--------
Requirement: easy-to-create, real-time animation

The software system must have the capabilities for programers to build
animations, and view the animation interactively in real-time (as
opposed to generating the animation once and save it as a movie).

For example, once a programer has coded the animation, she should
easily play it forward and backward in the program, as well as
changing parameters and re-run the new animation without going thru
some compilation or export process. For example, if the animation
involves a 3D object, the system should also allow the user to rotate
it while the animation is on-going, all in real-time.

For example, this system should allow programer to easily create a
animation that morphs a sphere into a cube, or a bunch of spheres
flying in space as a swarm of flies or in some artificial formation
like a 3D-kaleidoscope.
Example: Cycloidal Curves

above: A movie generated by a math software, showing how the cycloid
curve is generated by rolling a circle. (cycloidGen.mov ).

In this example, you can see the trace by a point on the boundary of
the circle. What happens if the tracing point is nearer to the center
of the circle? This is a example where a interactive slider will help.
As a user adjust the slider, the animation should show its effects in
real-time.
Example: Cellular Automaton

above: A software that computes the cellular automaton↗kno wn as Game
Of Life, showing it as a animation as it evolves. At any point in
time, a user can add more cells to it by clicking in the window, and
continue the animation to see its effects.
Example: Helicoid-catenoid Surface Family

above: A frame of a software generated animation, showing the isometry
property of the surface family helicoid-catenoid. (helicoid-
catenoid.mov)

This is a example where it shows the importance of being able to
rotate the object in real-time in a on-going animation.
Example: Sphere-eversion

above: The classic Sphere-eversion visualization problem, visually
demonstrating how a sphere can be turned inside-out without creating
any crease. (Source: John Sullivan et al. ↗. image source ↗, accessed
on 2007-03-18.) (For detail about this problem, see: Smale's paradox↗)

Examples of system that do NOT satisfy this requirement would be:
Mathematica (up to version 5), 3D-XplorMath, most CAD systems. Most of
these systems allow animations, but usually for a generate-once and
save-as-static-movie-file, not designed for interactive view.
Example: Stereographic Projection

above: A illustration showing stereographic projection. (source)

To create visualization for stereographic projection, ideally, the
user should be able to rotate the whole plane, or move it up and down
in relation to the sphere, as to see the effect on the mapping. Also,
the user should be able to rotate the sphere and see the mapping
change on the plane. The user should also be able to move a single
projection line to see mappings of arbitrary points. Lastly, it is
ideal in this visualization to let users change the pattern on plane
or on the sphere to arbitrary images. For example, the plane should
have a default set containing rectangular grids and polar grids.
(showing the important property of circles mapping to circles/lines)
The sphere should have standard projection of platonic solids.
(showing the important concept of platonic solids as networks) And,
the user should be able to put the graph of arbitrary complex function
on the plane or a Riemann sphere↗ on the sphere.

Today, it is non-trivial to create a visualization such as this. For
example, the above image is created in Mathematica. One has to write a
function that plots riemann sphere in the first place, to create the
image of the sphere. The system also needs to have animation and
interactive slider abilities, as to be able to make the sphere and
plane rotate or reposition independently in real-time, and the moving
of the projection line.

Examples of visualization systems that do satisfy the animation
requirement to various degrees discussed in this section would be:
Macromedia Flash, VPython, 3D Game Engines.

--------
Requirement: Walk-thru

The software system should have the capability of walk-thru or fly-
thru. That is, allow the programer precise control of the camera
position and orientation in real-time.

The most obvious application of this requirement is in CAD systems
that are specialized for architecture.

For example, if i build a fancy 3D-maze or elaborate cathedral, i
should be able to say, walk inside it, so as to view the object from
inside and as well as getting the real experience of perceiving such a
building.

The ability to do walk-thrus has significant applications in math
visualization too, however, it is seldom realized. Here are some
examples of its application.
Example: Walking on Surfaces

above: A hyperbolic-paraboloid, with a human character standing on top
of it. (from the computer graphics virtual world Second Life. Credit:
Henry Segerman↗, aka Seifert Surface.)

Compare the above image with the following abstract rendering that is
commonly found in math visualization software.

above: a abstract rendering of the hyperbolic-paraboloid. Java Applet

Perhaps due to the evolution of our perception system, the experience
of actually walking on or inside a math object, is vastly different
than just seeing it as zero-thickness abstract lines and sheets
rotating around its center.

Although, the virtual world created by computer graphics only fake the
experience of actually being there, still, such a virtual world
experience throws a impact on understanding. Imagine, demonstrating
the one-sidedness property of surfaces such as the moebius strip↗ or
Klein bottle↗ thru a live rotation and explanation, compared to having
the student inadvertently taking a walk inside such a object and
suddenly felt the single-sided oddity. A person experiencing such a
situation will probably remember it as part of his life's memory.
Example: 3D-Lattices

The ability to do walk-thrus also fits well in visualizations
involving 3-dimensional lattices, such as Crystallographi c group↗, 3D-
tilings (sphere packing), or visualizing periodic minimal surfaces.

For example, the following images of periodic minimal surfaces are
shown in the way they are traditionally presented, as a few
representative patchs of the periodic surface, and users can rotate
the surfaces in real-time:

above: Periodic minimal surfaces↗. Source: Richard Palais, Karcher
Hermann. ↗)

As they are shown, their periodic structure is not visually clear,
especially those non-rectangular ones. (e.g. the last 3) It also takes
some effort to imagine how they actually fill the space.

Now, imagine these shown in a walk-thru system, where a portion of
space is filled with its repetitions, and the user effectively becomes
a bee, flying about in it, able to observe detail in a close-up on any
point of the surface from any angle, or getting a bird's eye's
overview of the surface's lattice symmetry.
Example: 3-Manifolds

above: Screenshot of Jeff Week's Curved Space ↗ software. This program
lets users fly-thru various 3-manifolds↗ . There is basically no other
way of visualizing 3-manifolds other than the techniques of walk-thru.

There is effectively no visualization system that lets programers
easily code interactive walk-thrus. The possible exception is 3D Game
Engines↗, however, it requires a specialized programer with years of
dedicated experience to create any thing in it, and the work is rather
tedious. Some such game engines have higher level (scripting)
languages that let the user (players) create objects or scenes in-
world. (A example is the Linden Scripting Language↗ of Second Life↗. )

--------
Requirement: Easy To Use For Average Programers

The system must be easy to use for average programers or scientists.
For example, a person who had just a year of programing experience,
should be able to code a variety of visualization projects with the
system.

Often, these high-level languages are called scripting languages.
Mathematica↗, Lisps (Logo↗, Scheme↗, Tcl/tk↗ ), Visual Basic↗,
VPython↗, Macromedia Flash↗, CAD systems (AutoLISP↗), Linden
Scripting Language↗ are examples of high-level systems.

On the other hand, low-level language such as Java↗, C sharp↗, or,
systems such as OpenGL↗ and Game Engines↗, or application programing
systems such as Cocoa (API)↗ and X Window System↗, all require
professional programers with years of experience to create a non-
trivial application. These are not useful to most scientists or
engineers.

--------
Requirement: A Set of Basic Geometric Shapes

The system must have a set of basic primitives or shapes that serve as
building blocks. For example, spheres, torus, cubes, as well as meshes
of triangles.

Of course, the system should also have the following common elements:
various coordinates systems, projection systems, lighting and camera
control, build-in manifold by parametric surfaces and algebraic
equations, and a whole set of 2D and 3D transformation functions
(which can also work on n-dimensional coordinates).

For a system aimed for math visualization, it would also be necessary
to have access to a full range of math functions, such as integration,
derivative, higher-order functions.

[Continues on page 2]

-----
This post is archived at

I'm still working on the second part. Your opinions and comments on
existing systems are welcome. Thanks.

Xah
xa*@xahlee.org
∑ http://xahlee.org/

Apr 3 '07 #1
9 3041
It would be interesting to see a computer language include such
functionality from the ground up. If these were core features of a
language, you'd have something wicked cool, and not just a new
language retreading the same features and functionality.

Apr 4 '07 #2

Xah Lee íàïèñàâ:
REQUIREMENTS FOR A VISUALIZATION SOFTWARE SYSTEM FOR 2010

Xah Lee, 2007-03-16

In this essay, i give a list of requirements that i think is necessary
for a software system for creating scientific visualization for the
next decade (2007-2017).

(for a HTML version with images, please see
http://xahlee.org/3d/viz.html )
An interesting essay, of course it is much better to read the HTML
version (with illustrations).

With best regards,

Victor Anyakin
http://vityok.org.ua

Apr 4 '07 #3
Check out pymol.

James
Apr 4 '07 #4
jon
Go for it! I can see immediate application in displaying and
exploring multivariate projections. e.g., factor analyses and
components analysis, multivariate groupings superimposed on projected
hyperspaces... This is stuff some of us have been dreaming about for a
couple of decades, and getting there from primitives has been (ahem)
"fun." To be able to express this and see results using a higher
level language would be really important to a lot of research
exploration.

--
jondr

Apr 4 '07 #5
On Apr 3, 12:23 pm, "Xah Lee" <x...@xahlee.or gwrote:
[top posting for clarity]

i have been writing a simulations engine in OCaml
in my spare time over the past few years

it uses openGL as its visualisation engine

it is intended to transform specifications
written in a domain-specific language based on category theory
where the objects are specified by the transformations they
undergo
into "simulation s"

i have used the visualisation engine to explore functions

and even posted some of the results

http://tinyurl.com/3262ep

i have also done visualisation in relativistic spacetimes in the past

this included
finite speed of light travel
doppler shift of frequencies / color
and some very basic work in generalised metrics

this was done in POVRay
but i ported most of that over last summer to my own engine

lately i have been working on code generation of the simulations
( to c++ - which i've also posted some about )
so that i can publish my simulations while keeping my core
technology proprietary
but i was going to add more complete construction capabilities of
complexes
basic surgery operations
...
to make its handling of nnoneuclidean geometry more robust
and easier to manipulate through the gui

much of what you posted is either already in my engine
or slated to be added over the next year

so...

if you'd like
i'd love for you to be an evangelist of my technology
and maybe help get my dreams of starting my own company off the
ground
or
if you are looking to develop something similar and become my
competitor
just be warned
i have been studying " the art of war "

;)

( also note that many of your requirements
are already handled by professional programs like maya
and it's MEL scripting interface )
REQUIREMENTS FOR A VISUALIZATION SOFTWARE SYSTEM FOR 2010

Xah Lee, 2007-03-16

In this essay, i give a list of requirements that i think is necessary
for a software system for creating scientific visualization for the
next decade (2007-2017).

(for a HTML version with images, please seehttp://xahlee.org/3d/viz.html)

For the past 10 years, i have been strongly interested in mathematical
visualization. I'm not a professor, and am not doing it for the
educational purposes per se. Geometry has just been beautiful for me,
and i'm also a professional programer. Programing computers to
visualize geometric theorems or geometric objects, has been a immense
personal pleasure. A particular aspect of visualization, is to design
it so that when viewed, it forces a immediate and crystal clear
understanding of the object or theorem, to its viewers.

I have for the past couple years sought for a software platform/system
where i can build 3D objects, with abilities to do interactive
manipulation (such as moving a slider to change a parametric surface's
parameter), dynamic rotation (viewing from different angles
instantaneously ), animations (such as morphing that shows geometric
processes), and most of all, walk-thru in it as if it is a building
(e.g. the perception of actually walking on a moebius strip↗ or Klein
bottle↗ is vastly different than just viewing it.).

--------
Requirement: Real-Time 3D Rotation

For math visualization, it is absolutely necessary to be able to
rotate the object in real-time. For example, when viewing a complex
surface, a molecule structure, or the design of a complex device. This
requirement is so basic it warrants no further explanation.

above: The Chen Gackstatter minimal surface as shown by the software
3D-XplorMath ↗. This surface has several 3-fold symmetries, but a
static image does not show this. (Live Rotation with Java Applet)

--------
Requirement: Real-time Interactivity

The programer should be able to build buttons and sliders that change
parameters and have the object reflect these changes visually right
away.

This real-time interactivity is frequently needed. For example, most
math visualizations involve a function, a process, or a geometric
object, that varies by parameters, and the key to the visualization is
showing how the parameter effect the graph or object. Some Examples
follows.
Example: Moebius Transformation

above: A software that plots a complex function (the Moebius
transformationâ †—), by showing the pre-image and post-image of the
function. The function is keyed by various parameters that can be
represented as points in the plane. Dragging these points will change
the image interactively. Source: MoeApplet by Paul Murray ↗
Example: Regular Polytopes

above: a Java applet showing a slice of 4-dimensional symmetric
polytopes↗ , with sliders that change the polytope's parameters.
Dragging the polytope will rotate it in real-time. Hyperstar Java
Applet by Mark Newbold ↗.
Example: Plane Geometry

above: A interactive plane geometry software showing a Equiangular
Spiral and its inverse curve , with respect to a point O. Equiangular
spiral is a family of curves varying by a parameter θ, from 0 to π/2.
This parameter can be changed by dragging the point E of the angle
DAE, and the corresponding curve will be shown (blue). Its inverse
curve with respect to the point O is shown in pink. Dragging the point
O will change the position of O, and corresponding inverse curve will
be shown in real-time.

above: A plane geometry software demonstrating Bezier curve. User can
drag the poins to very the input, and see the polynomial change shape
in real-time. Java Applet version.
Example: Conic Sections

Computing power today are some 50 times faster than a decade ago.
However, math visualizations, have hardly advanced. For example, let's
consider the simple task of plotting of polynomial equations. As we
know, 2nd degree polynomials of 2 variables are conic sections. It
would nice, that the program can show the general form A x^2 + B x y +
C y^2 + D x + E y + F == 0 and let users change the constants by
sliders, and have the graph change on the fly. Such a application
would give immense feedback that reinforces learning, which is what
visualization is about. Similiarly, this can be done for 3rd degree
polynomials, and the visualization of polynomials of 3 variables.

There are tens, if not hundreds, elementary equation and function
graphing software. However, it is almost impossible to find one that
shows the power of interactivity described above. Apple Computer Inc,
bundled with OS X as current as of March 2007, a plotting software
(called Grapher↗) that has zero interactivity features. And
Mathematica's abilities for plotting polynomial equations in as late
as 2005, is basically the same as 1996. Its ability for visual
experiment and learning of polynomials of 3 variables is practically
zero.

I have personally played with perhaps over 20 major plotting software
over the past 15 years, and i only know one that has this feature.
(see Nucalc↗)

--------
Requirement: easy-to-create, real-time animation

The software system must have the capabilities for programers to build
animations, and view the animation interactively in real-time (as
opposed to generating the animation once and save it as a movie).

For example, once a programer has coded the animation, she should
easily play it forward and backward in the program, as well as
changing parameters and re-run the new animation without going thru
some compilation or export process. For example, if the animation
involves a 3D object, the system should also allow the user to rotate
it while the animation is on-going, all in real-time.

For example, this system should allow programer to easily create a
animation that morphs a sphere into a cube, or a bunch of spheres
flying in space as a swarm of flies or in some artificial formation
like a 3D-kaleidoscope.
Example: Cycloidal Curves

above: A movie generated by a math software, showing how the cycloid
curve is generated by rolling a circle. (cycloidGen.mov ).

In this example, you can see the trace by a point on the boundary of
the circle. What happens if the tracing point is nearer to the center
of the circle? This is a example where a interactive slider will help.
As a user adjust the slider, the animation should show its effects in
real-time.
Example: Cellular Automaton

above: A software that computes the cellular automaton↗kno wn as Game
Of Life, showing it as a animation as it evolves. At any point in
time, a user can add more cells to it by clicking in the window, and
continue the animation to see its effects.
Example: Helicoid-catenoid Surface Family

above: A frame of a software generated animation, showing the isometry
property of the surface family helicoid-catenoid. (helicoid-
catenoid.mov)

This is a example where it shows the importance of being able to
rotate the object in real-time in a on-going animation.
Example: Sphere-eversion

above: The classic Sphere-eversion visualization problem, visually
demonstrating how a sphere can be turned inside-out without creating
any crease. (Source: John Sullivan et al. ↗. image source ↗, accessed
on 2007-03-18.) (For detail about this problem, see: Smale's paradox↗)

Examples of system that do NOT satisfy this requirement would be:
Mathematica (up to version 5), 3D-XplorMath, most CAD systems. Most of
these systems allow animations, but usually for a generate-once and
save-as-static-movie-file, not designed for interactive view.
Example: Stereographic Projection

above: A illustration showing stereographic projection. (source)

To create visualization for stereographic projection, ideally, the
user should be able to rotate the whole plane, or move it up and down
in relation to the sphere, as to see the effect on the mapping. Also,
the user should be able to rotate the sphere and see the mapping
change on the plane. The user should also be able to move a single
projection line to see mappings of arbitrary points. Lastly, it is
ideal in this visualization to let users change the pattern on plane
or on the sphere to arbitrary images. For example, the plane should
have a default set containing rectangular grids and polar grids.
(showing the important property of circles mapping to circles/lines)
The sphere should have standard projection of platonic solids.
(showing the important concept of platonic solids as networks) And,
the user should be able to put the graph of arbitrary complex function
on the plane or a Riemann sphere↗ on the sphere.

Today, it is non-trivial to create a visualization such as this. For
example, the above image is created in Mathematica. One has to write a
function that plots riemann sphere in the first place, to create the
image of the sphere. The system also needs to have animation and
interactive slider abilities, as to be able to make the sphere and
plane rotate or reposition independently in real-time, and the moving
of the projection line.

Examples of visualization systems that do satisfy the animation
requirement to various degrees discussed in this section would be:
Macromedia Flash, VPython, 3D Game Engines.

--------
Requirement: Walk-thru

The software system should have the capability of walk-thru or fly-
thru. That is, allow the programer precise control of the camera
position and orientation in real-time.

The most obvious application of this requirement is in CAD systems
that are specialized for architecture.

For example, if i build a fancy 3D-maze or elaborate cathedral, i
should be able to say, walk inside it, so as to view the object from
inside and as well as getting the real experience of perceiving such a
building.

The ability to do walk-thrus has significant applications in math
visualization too, however, it is seldom realized. Here are some
examples of its application.
Example: Walking on Surfaces

above: A hyperbolic-paraboloid, with a human character standing on top
of it. (from the computer graphics virtual world Second Life. Credit:
Henry Segerman↗, aka Seifert Surface.)

Compare the above image with the following abstract rendering that is
commonly found in math visualization software.

above: a abstract rendering of the hyperbolic-paraboloid. Java Applet

Perhaps due to the evolution of our perception system, the experience
of actually walking on or inside a math object, is vastly different
than just seeing it as zero-thickness abstract lines and sheets
rotating around its center.

Although, the virtual world created by computer graphics only fake the
experience of actually being there, still, such a virtual world
experience throws a impact on understanding. Imagine, demonstrating
the one-sidedness property of surfaces such as the moebius strip↗or
Klein bottle↗ thru a live rotation and explanation, compared to having
the student inadvertently taking a walk inside such a object and
suddenly felt the single-sided oddity. A person experiencing such a
situation will probably remember it as part of his life's memory.
Example: 3D-Lattices

The ability to do walk-thrus also fits well in visualizations
involving 3-dimensional lattices, such as Crystallographi c group↗, 3D-
tilings (sphere packing), or visualizing periodic minimal surfaces.

For example, the following images of periodic minimal surfaces are
shown in the way they are traditionally presented, as a few
representative patchs of the periodic surface, and users can rotate
the surfaces in real-time:

above: Periodic minimal surfaces↗. Source: Richard Palais, Karcher
Hermann. ↗)

As they are shown, their periodic structure is not visually clear,
especially those non-rectangular ones. (e.g. the last 3) It also takes
some effort to imagine how they actually fill the space.

Now, imagine these shown in a walk-thru system, where a portion of
space is filled with its repetitions, and the user effectively becomes
a bee, flying about in it, able to observe detail in a close-up on any
point of the surface from any angle, or getting a bird's eye's
overview of the surface's lattice symmetry.
Example: 3-Manifolds

above: Screenshot of Jeff Week's Curved Space ↗ software. This program
lets users fly-thru various 3-manifolds↗ . There is basically no other
way of visualizing 3-manifolds other than the techniques of walk-thru.

There is effectively no visualization system that lets programers
easily code interactive walk-thrus. The possible exception is 3D Game
Engines↗, however, it requires a specialized programer with yearsof
dedicated experience to create any thing in it, and the work is rather
tedious. Some such game engines have higher level (scripting)
languages that let the user (players) create objects or scenes in-
world. (A example is the Linden Scripting Language↗ of Second Life↗. )

--------
Requirement: Easy To Use For Average Programers

The system must be easy to use for average programers or scientists.
For example, a person who had just a year of programing experience,
should be able to code a variety of visualization projects with the
system.

Often, these high-level languages are called scripting languages.
Mathematica↗, Lisps (Logo↗, Scheme↗, Tcl/tk↗ ), Visual Basic↗,
VPython↗, Macromedia Flash↗, CAD systems (AutoLISP↗ ), Linden
Scripting Language↗ are examples of high-level systems.

On the other hand, low-level language such as Java↗, C sharp↗, or,
systems such as OpenGL↗ and Game Engines↗, or applicationprog raming
systems such as Cocoa (API)↗ and X Window System↗, all require
professional programers with years of experience to create a non-
trivial application. These are not useful to most scientists or
engineers.

--------
Requirement: A Set of Basic Geometric Shapes

The system must have a set of basic primitives or shapes that serve as
building blocks. For example, spheres, torus, cubes, as well as meshes
of triangles.

Of course, the system should also have the following common elements:
various coordinates systems, projection systems, lighting and camera
control, build-in manifold by parametric surfaces and algebraic
equations, and a whole set of 2D and 3D transformation functions
(which can also work on n-dimensional coordinates).

For a system aimed for math visualization, it would also be necessary
to have access to a full range of math functions, such as integration,
derivative, higher-order functions.

[Continues on page 2]

-----
This post is archived at

I'm still working on the second part. Your opinions and comments on
existing systems are welcome. Thanks.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
galathaea: prankster, fablist, magician, liar

Apr 4 '07 #6
galathaea wrote:
On Apr 3, 12:23 pm, "Xah Lee" <x...@xahlee.or gwrote:
[top posting for clarity]
[and then redundantly quoting the whole article to which comments referred].

Come on, people - remember netiquette? Please trim out material that's
not relevant to your reply.

regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
Recent Ramblings http://holdenweb.blogspot.com

Apr 4 '07 #7
Xah Lee wrote:
REQUIREMENTS FOR A VISUALIZATION SOFTWARE SYSTEM FOR 2010

Xah Lee, 2007-03-16

In this essay, i give a list of requirements that i think is necessary
for a software system for creating scientific visualization for the
next decade (2007-2017).

(for a HTML version with images, please see
http://xahlee.org/3d/viz.html )
Very nice overview, of what IS and what SHOULD BE.

And I'm very surprised that there's still so little open source software,
in the form a graphical calculator for simple and interactive (2D, 3D, timeseries) math.

As I stepped from MatLab to Python a couple of months ago,
I still had hopes such a graphical visualization tool existed in Python :-(
--
cheers,
Stef Mientki
http://pic.flappie.nl
Apr 4 '07 #8
Lew
galathaea wrote:
On Apr 3, 12:23 pm, "Xah Lee" <x...@xahlee.or gwrote:
[top posting for clarity]
You mean to reduce clarity.

Please do not top-post - instead, trim the post and respond in line. It makes
the messages easier for the rest of us.

--
Lew

Apr 4 '07 #9
Xah Lee wrote:
In this essay, i give a list of requirements that i think is necessary
for a software system for creating scientific visualization for the
next decade (2007-2017).
You may be interested in the F# programming language from Microsoft
Research. This is a high-performance functional programming language with
integrated Visual Studio support and an interactive mode (like a
Mathematica notebook).

The F# language is not distributed with any graphical tools except a couple
of example programs. However, you can write a purely functional scene graph
library and compiler in only 200 lines of code and then generate 2D and 3D
graphics (spawned as separate visualizations from an interactive sessions)
with the brevity of Mathematica and the robustness of ML.

I have detailed exactly this functionality in the visualization chapter of
my forthcoming book F# for Scientists:

http://www.ffconsultancy.com/product...or_scientists/

and I am so happy with the results that we are going to write another book
specifically on the use of graphics from the F# language.

Also, as .NET programs, F# programs can be executed on non-Windows platforms
using tools like Mono. In the case of a DirectX-based visualization, you
would probably need to write another back-end targetting OpenGL.

--
Dr Jon D Harrop, Flying Frog Consultancy
OCaml for Scientists
http://www.ffconsultancy.com/product...ex.html?usenet
Apr 5 '07 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
2209
by: Umesh Persad | last post by:
Hi All, I am looking for a platform to rapidly develop software for Information Visualization. Since I am working in an academic environment, I want to be able to develop applications quickly with minimal learning and problems. I was looking to python as a solution. However, before I jump right in, I was wondering about the capabilities of Python for interactive graphical programming. I am
1
377
by: Noname | last post by:
Hi All I am working for a EE Department. We are in the process of developing some application that requires 3D visualization and other display routines. Can anyone clarify that if thats possible. Thanks Regards
0
1121
by: tloren | last post by:
We have all seen on every software product that "minimum system requirements are......" and "recommended..........". How do they know this? Is there anyone here who knows how to find out what the system requirements for your own software are? Both minimum and recommended. Please send me a personal message on this, and I'll post the answer here after I've read it.
1
2002
by: Juan Carlos Diez | last post by:
Hello, I'm evaluating that version and I can't find system requirements for it. Could anybody please help me with these questions? 1.1. Hardware: 1.1.1. C.P.U. (how many processors, what speed) 1.1.2. Ram. (minimum and desired) 1.1.3. Disk. 1.1.4. Networking. 1.1.5. Scalability 1.2. Software:
0
1791
by: David T | last post by:
Has anyone run across this error? When calling any of several visualization routines from FiPy, Python quits with a Bus Error I'm using MacOS X Tiger 10.4.3, and I've tried several builds of Python 2.4: Framework build of 2.4.1, Fink build of 2.4.2, Fink build of vtkPython 2.4.2. Same crash from each.
3
2851
by: bearophileHUGS | last post by:
Icon is a language that share some similarities with Python: http://www.cs.arizona.edu/icon/ During the execution of a Icon script there are ways to visualize the memory: http://www.cs.arizona.edu/icon/progvis/memmon/memmon.htm Related pages: http://www.cs.arizona.edu/icon/progvis/workshop/workshop.htm http://www.cs.arizona.edu/icon/progvis/progvis.htm
11
3646
by: Fie Pye | last post by:
Hallo I would like to have a high class open source tools for scientific computing and powerful 2D and 3D data visualisation. Therefore I chosepython, numpy and scipy as a base. Now I am in search for a visualisation tool. I tried matplotlib and py_opendx with OpenDx. OpenDx seems to me very good but the project py_opendx looks like closed. After py_opendx instalation and subsequent testing I got an error that needs discussion with author...
3
1821
by: Michael Justin | last post by:
Hello newsgroup After downloading the SCSF for Visual Studio 2008 from Microsoft (http://msdn.microsoft.com/en-us/library/aa480482.aspx) the installer complained that the requirements are not fulfilled. Which version of Visual Studio do I need, Standard or Professional, to try this software (and the Guidance Automation Extensions)? Btw: are there any other products on the market which might be
0
2028
by: tavares | last post by:
(Our apologies for cross-posting. We appreciate if you kindly distribute this information by your co- workers and colleagues.) *************************************************************************** Symposium “Image Processing and Data Visualization” 2nd South-East European Conference on Computational Mechanics (SEECCM 2009) Island of Rhodes, Greece, 22-24 June 2009
0
9462
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10046
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
9857
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9722
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8723
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7259
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5155
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5318
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3817
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.