The JavaViewLib – A
Visualization PowerTool
Steven Peter Dugaro
Center for Experimental and
Constructive Mathematics
Simon Fraser University
sdugaro@sfu.ca
Konrad Polthier
Institut fuer
Mathematik
Technische
Universitaet Berlin
Abstract
The JavaViewLib is a Maple package that
employs a Java appletcation called JavaView to augment and enhance a user’s
visualization experience with Maple. It offers a superior viewing environment,
a set of real-time modeling tools, a means of preserving the dynamic
characteristics of Maple plots upon html export, and the ability to import
models from a variety of other formats. Pedagogically, the JavaViewLib serves
as a tool for quickly visualizing and displaying mathematical formulations.
Holistically, it serves as an example of the power that lies in application
connectivity between Maple and other applications.
These pThis paper roceedings
aims
to introduce the typical features and workflow of the JavaViewLib PowerTool
through a series of examples. It will also discuss the method by which
connectivity was achieved and the importance of allowing for 3rd
party software integration. Finally, these proceedingsthis paper will
describe a few desired improvements and a few recent developments that the recent Maple developments that may
begin to resolve
them.
The following examples are
designed to appeal to the educator, researcher and casual user alike. They will
show: i. A JavaView -enhanced
HTMLhtml-exported
Maple worksheets. ii. The import of
externally modeled geometries. iii. The export of procedurally
generated Maple modelsplots to higher end packages. iv.
The use of the JavaView standalone and its toolset v. The use of
JavaView’s XML based file format for information interchange. vi.
The automatic
generation of an web basedhtml
geometry gallery.
1.get
right into it … usage examples….
a.Intro:first
describe the superiority of the JavaViewer for visualization and presentation.
i.Side
by side snapshot
a.Exporting
to a webpage: runApplet -> fileconversion
a.Importing
other models: a first. Introduce the standalone for file conversion
1.why
is connectivity important, how was it achieved in this case… system calls and
flat files housing the geometric data only. how might it better be achieved. à
tighter application integration.
1.state
of mathml and interface plugin… write an sdk to parse an entire file. Xml
document factories.
1.tap into file conversion tools of JavaView…
export(…, sdf) .. like to be able to use javaviews libs as an engine to invoke
methods ie export(sdf,”vrml”) ?? how to talk to javaview to do this?
Environment configuration parameters.
Introduction
Maple is a comprehensive computer algebra system.
It offers packages from various branches of mathematics to aid in solution and
visualization. It also offers word processing facilities with typeset
mathematics and export capabilities to aid in the composition of mathematical
papers. Furthermore, it provides a
unique environment for the rapid development of mathematical programs using its
own programming language and function libraries. These features are
encapsulated in a single Maple Worksheet (mws), which can be transported and executed between Maple
applications
JavaView is a
sophisticated visualization appletcation and geometric software library. Among other features,
it offers a
superior viewing environment that employs scaling, translation, quaternion
rotation, customizable axes, colouring, materials and textures, transparency,
anti-aliasing, depth cueing, animation, and camera control. It is capable of
importing and exporting 3d geometries in a wide variety of formats, and can
perform basic
real-time
modeling upon these geometries. It also offers an api, allowing custom plug-ins
and visualizations to be developed for it. Furthermore, JavaView can be used as
a standalone application or may be embedded as an applet in web pages for
remote use via web browsers.
The JavaViewLib (JVL) is an amalgam of JavaView
with a Maple library; an interface between them. It makes use of the strong
aspects of both to facilitate the exchange of geometries between the two,
quickly build web pages with those geometries, and enhance the interactive
experience one
has with Maple plots. JVL is typically used to preserve the dynamic qualities
of a Maple plot upon export to the web; static plot snapshots in Maple HTML exports can now be
replaced with dynamic plots in a JavaView applet. Via JavaView, geometries can be exported
from Maple to a variety of modeling packages and vice versa. JVL can quickly
build web-based
geometry
galleries with little effort, and these geometries can be exported and
displayed in a legible XML format to ease further development.
While Maple’s mathematics engine is among the
industry’s
best, its’ visualization and web
features are few. While JavaViews
viewing and modeling features are were built precisely for web based visualizations it does not provide
any algebra or word processing utility. JVL is the first attempt to overcome these deficiencies by providing a means by
which the two applications can work in unison. Researchers and
educators
can now take their visualizations, publications, and demonstrations further
than ever before.
Maple
JavaView
JVL
Important to be able
to quiclly access a powerful math library to generate viz data,
But just as important
to present the findings easily and interactively.
Connectivity
Software development
is typically an ongoing process where there is always room for improvement and embellishment. It is not unusual for one aspect of a
program to
be further developed at the
expense of another, such that a comparable application has a more attractive feature set in a certain domain. Mature software
applications tend
to counter
development shortcomings with an allowance for end-user customization by way of scripting or third party plug-ins that build upon the functionality of
the host application using its native language. This is an important aspect of software development, but is still far from
the idea of cross application interoperability, where the end-user would
like to transparently utilize the best aspects of two or more
applications
through one interface. To use a relevant example, a Maple user may want
to render a plot in a more advanced viewer than the default plot viewer, but would like for
that advanced viewer to be embedded within the Maple worksheet and configurable from
within Maple. On the other hand, a JavaView user may want to send
a computation
to a
particular library in Maple’s math engine and incorporate the
results into a geometrical rendering. In order to achieve this, each application would
need to provide a certain measure of application connectivity, such that one
applications’ representation of the
underlying data can be reliably interpreted by the other.
Application
connectivity refers to one programs' ability to link to other programs. In the
Mathematics community, application connectivity is typically of secondary
importance. Software is commonly developed from the ground up to realize the
research goal, not the potential for integration with other mathematics
applications. However, some applications do make provisions and have great
connectivity. JavaView provides an application programmers interface for 3rd party
development in addition to great import and export utility for the exchange of
geometric data. Mathematica has provided a very thorough interface known as
MathLink on top of which a Java version known as J/Link allows Java programs to
be controlled from within Mathematica, and the Mathematica kernel to be
controlled from within any Java program. In fact, the ease of application
connectivity provided by these two applications has already allowed for their
quick and seamless integration.
Unfortunately, Maple versions to date make little provision
for application connectivity with a poor degree of control over the user interface. These constraints make
it impossible to create a true plug-in for Maple, let alone reach the levels of connectivity
illustrated above. However, Maple does allow for packages written in the Maple
programming environment to be loaded into a Maple session, and referenced via function calls within the worksheet interface. In the absence of a
connectivity mechanism, JVL was developed as a standard maple package enabling Maple and JavaView
to exchange
geometric data through flat
files, applet tags and system pointers. Two file formats are utilized to allow plot information to pass
between the applications; an MPL file which is nearly identical to the Maple plot data
structure,
and a JVX file which is
JavaView’s native XML based file format. JVL parses and prepares Maple plot
data in one of these two formats for import into JavaView, and provides the mechanism
by which the data in these files can be rendered in Maple. JVL also builds the
necessary HTML code that browsers
require to render these geometries, provides a small set of configuration
parameters, and launches the browser and JavaView standalones from within
Maple. In
short, JVL makes
a peripheral
attempt at establishing a rudimentary level of application connectivity between
the web browser, Maple, and JavaView.
Package OverviewExamples
The library functions
made available by the JavaViewLib are listed upon successfully loading the
package. These
functions may be categorized according to their naming constructs as the import/export, run, gen, and lite functions, with a few remaining utilities.
[> with(JavaViewLib);
[exportHTM,
exportHTMLite, exportJVX, exportMPL, genTag, genTagLite, getInfo,
import, runApplet, runAppletLite,
runJavaView, runMarkupTree, set, viewGallery]
The export functions convert the Maple Plot
data structures into one of the two
aforementioned JavaView parse able file formats. Exporting in the JVX file format via exportJVX produces an xml file containing only the raw geometric data. This provides a human readable crude representation of the
geometry,
which can be embellished by adding attributes according to the JavaView dtd. Exporting in the MPL
file format via
exportMPL produces a more compact representation of the Maple plot that is rendered by JavaView in the same stylistic manner as the Maple plot viewer. These two formats may then be opened
with the JavaView standalone. The exportHTM
and exportHTMLite functions export
the Maple plot data to an applet embedded HTML page by referencing
exported MPL or JVX files in the applet tag or by the default inclusion of the plot data in an applet tag parameter. This HTML file may then be
opened in any java enabled web browser. The import function imports JVX and MPL
formatted files into the Maple plot viewer. With this command, any of nearly a dozen
geometric file formats that JavaView is able to import can also be imported
into a Maple worksheet for viewing or publishing.
The run functions are basically wrappers around the above export
functions serving to launch the appropriate application from within Maple. The runApplet and runAppletLite functions export the Maple plot into the
configured web browser and the runJavaView function exports the plot into the local JavaView standalone. These functions take
combinations
of a plot
object, a filename and an
export method as arguments. Specifying a plot object with a filename and an
export method writes the plot object to the filename in the format of the
export method and launches the exported file into the designated application. These commands may
also be used to launch the web browser or JavaView on existing plot
exports by providing
the path to the exported file as a single argument. For the semantics of various other
argument combinations refer to the documentation in Maples help browser under Graphics > JavaView. The remaining runMarkupTree function displays the XML
markup tree of the argument plot or referenced file in the web browser.
The gen functions print to the Maple worksheet the applet tag that would otherwise be output to any generated html file. The arguments are
the same as the export and run functions, but as the output can be
copied and pasted from the maple worksheet to an html file, multiple JavaView
viewports can be quickly built into a single page.
Some functions have
the Lite suffix appended. These variants of the html
generating functions make use of an alternative version of JavaView
optimized for loading time. Unlike the standard version, the Lite version has no
supplementary control panel. This dramatically reduces the applet size at the
expense of a greatly reduced feature set. As a result, the Lite version is typically used as a geometry
viewer only, especially when there are many geometries to display in a single HTML page.
Of the remaining
functions, the set function configures the JVL state variables. These include the
working directory, the web browser to launch with, as well as various HTML and applet attributes. When a function call
is made, the current state definitions are referenced to configure some basic JavaView parameters before loading the Maple plot. The getInfo function displays the list of JVL state
variables, their current values, and the state variable names to bind to with the set command. When using JVL, one typically sets a working
directory,
configures any desired attributes and then runs or exports a series of Maple plots. In the working
directory JVL
maintains an
organized relative directory structure
for the various exports so that an entire working directory, or project, can be
quickly put on-line. To expedite this process further, JVL offers the viewGallery function to build a frames
based, indexed web gallery of all the
geometries with corresponding html pages in the /htm folder of the working
directory. Upon
executing this function, a rudimentary web site is automatically created for
exported maple plots, such that the dynamic qualities of plots and animations within a Maple worksheet may be preserved when
exported to the web.- use the ones in the presentation….. put poisson quote in the presentation &
apple texture mapping.
Auto
export to a webpage
Importing
non maple geometries
Exporting
maple generated geometries to Third party packages\
(use javaview standalone along the way to
make modifications)
i.e. merge points.
Gallery
Connectivity
Importance
– evidenced using jvl to io between maple and other packages.
xml
file format for info intercahge
Examples
The following examples illustrate some of the common applications of JVL. In depth usage
instructions can be found in the gettingStarted
maple worksheet provided with the package distribution.
1 JVL maintains a small
amount of state information to assist in the configuration of the JavaView
viewer. For the most part, these states specify how the JavaView applet is to
be rendered in a browser. These states can be set to specify the size of the
JavaView viewport, its background image, and some viewing initializations such
as autorotation, axes, and depth cueing. The list of state information can be
obtained with
the getInfo command.
[> getInfo();
JavaViewLib State
Information
-----------------------+------
[W ] Applet Width | 400
[H ] Applet Height | 400
[A ] Applet
Alignment | Center
[R ] AutoRotate | 1. 1. 1.
[X ] Axes | Hide
[BG] Background Colour
| 255 255 255
[BG] Background
Image | images/jvl.jpg
[B ] Border | Hide
[BB] Bounding Box | Show
[BR] Browser | iexplore
[V ] Camera
Direction | 1. 2. 3.
[DC] Depth Cueing | Hide
[EA] Edge Aura | Show
[WK] Working Path | C:\Program Files\Maple 6\JavaViewLib\
Installation Path | C:\Program
Files\Maple 6\JavaViewLib\
Operating System | Windows NT/2000
JVL states can be
configured with the set command by specifying a list of attribute = value
pairs. It
is recommended that a working path be set before using JVL, otherwise exports
will be output to the JavaViewLib installation directory. Setting the working
path creates four folders in the specified directory: a /jars folder containing
the necessary JavaView applets, /jvx and /mpl folders to house exported
geometry files, and an /htm folder containing the JavaView enhanced web pages. In this example we set the working
path for the export project and specify that all subsequent tags are to be
rendered with a left aligned 500 pixel by 600 pixel viewport, in autorotate mode.
[> set(wk=”c:\\temp\\myGeoms\\”,w=500,h=600,axes,autorotate,align=left):
2 The easiest way to render a Maple plot in JavaView
is to simply wrap a JVL function around a Maple plot command. Here we launch an animated Maple plot
in an html page. By default, JVL will create an MPL file in the /mpl
folder of the working directory named JVLExport.mpl as well as the corresponding JavaView enhanced web page in which the
geometry is
rendered much like that of the Maple plot viewer. An animation panel
appears allowing for greater animation control while the plot rotates freely.
[> runApplet(plots[animate3d]((1.3)^x * sin(u*y), x=-1..2*Pi, y=0..Pi, u=1..8, coords=spherical));
"c:\\temp\\myGeoms\\htm/JVLExport.htm"
3 Maple plots may be
exported into MPL, JVX and HTML files. An html page may be
exported such that the geometric data is either self contained or, when the
appropriate file extension is appended to the destination filename, referenced
in a separate geometry file. Typically files are exported to the corresponding
folder of the working directory. However, geometries may also be exported to
arbitrary paths. When the fully qualified path of the destination
directory is
provided as an argument to an export function, JVL copies all the
necessary files to the destination directory including the JavaView archives to
be embedded in the page. When a relative path is provided as an argument, JVL exports the files to that
depth while referencing the JavaView archives of the parent working directory. The following command exports a 2D plot into a
single html file to be opened with an html browser at a later time.
[> exportHTM(plot([sin(4*x),x,x=0..2*Pi],coords=polar),
“c:\\temp\\arbitrary\\path\\flower.htm”);
"c:\\temp\\arbitrary\\path\\flower.htm"
4 When using Maple to export worksheets as HTML, all output including
plots are converted to static gifs. Consequently, the benefit of a dynamically viewable
plot is lost. In addition, an HTML page is more portable than a Maple worksheet as it does not require a proprietary
application to view it. Using JVL, an exported Maple worksheet may preserve the
dynamic qualities of the plot within a broadly distributable HTML page. Simply export the worksheet to the /htm directory
of the working path, run genTag on
the Maple plot to generate the appropriate applet tag, open a text editor, and replace a plots’ <img … alt=’Maple
plot’> tag with the JVL generated applet tag for the corresponding Maple
plot.
Suppose we have defined a function called grow to procedurally
generate the plot of an l-system tree, holding that plot in a reference variable a. The following command will produce the JavaView tag that may be cut and paste into the HTML worksheet exported by Maple. The leftmost screenshot below shows a static HTML export
of a Maple plot. Particularly in the case of an l-system it is
difficult to distinguish
the details of the plot. At best, the size of the exported image can only be increased by
enlarging the boundary of the Maple plot viewer as the viewer has no zoom feature. This proves to be
somewhat awkward as the size of the viewer – hence the size of the exported image – is limited by the size of the enclosing
Maple worksheet. The remaining two screenshots show the dynamic and
configurable qualities of a JavaView enhanced HTML export by comparison.
Notice that we are able to zoom into the branches of the l-system
at any
desired level of detail and manipulate the characteristics of the plot itself. Since these enhanced
web-pages may
be manipulated remotely, they serve as a great online instructional tool.
[> genTag(a,plant1.mpl);
<APPLET
CODE='javaview.class' CODEBASE='..'
ARCHIVE='jars/javaview.jar,jars/jvx.jar'
WIDTH='300' HEIGHT='300' ID='JVLAPPLET' ALT='JVL - MAPLE Export'>
<PARAM NAME='Axes' VALUE='Hide'>
<PARAM NAME='Background' VALUE='255 255
255'>
<PARAM NAME='Border' VALUE='Hide'>
<PARAM NAME='Model' VALUE='mpl/plant1.mpl'>
</APPLET>
[>
genTag(a,plant2.mpl);
<APPLET CODE='javaview.class' CODEBASE='..'
ARCHIVE='jars/javaview.jar,jars/jvx.jar'
WIDTH='300'
HEIGHT='300' ID='JVLAPPLET' ALT='JVL - MAPLE Export'>
<PARAM
NAME='Axes' VALUE='Hide'>
<PARAM
NAME='Background' VALUE='255 255 255'>
<PARAM
NAME='Border' VALUE='Hide'>
<PARAM
NAME='Model' VALUE='mpl/plant2.mpl'>
</APPLET>
5 Included in the JVL distribution is the platform
independent JavaView standalone application. Among other features such as texture
mapping,
effects, and geometric games, JavaView provides a set of modeling tools. For instance,
under the Method > Modeling menu, the Identify Vertices command allows
vertices within an epsilon neighborhood to be merged into a single point. Considering that Maple
plots do
not re-use adjacent vertices this proves to be a useful tool as JavaView is
able to optimize Maple generated plots and export them to higher end modeling
applications.
For instance, this example uses Maple to procedurally generate a Serpinski Cube, then JavaView to apply
the aforementioned method and export the geometry to the OBJ format for use in
MAYA, a high end modeling and animation application. Before the
identification, the unconnected Maple geometry consisted of
9600 vertices and 9600 edges, afterwards the geometry is seamless, containing 896
vertices and 2376 edges. Of course the modeling
tools can also be used remotely with a JavaView enhanced webpage, however, due to
applet security restrictions, format conversion requires an additional cut and
paste step.
6 JVL not only enables Maple models to be exported to third party applications; it enables third party models to be exported into Maple. For the first time, a
document published from a Maple worksheet is not restricted to models generated by
Maple. VRML, OBJ, BYU and other geometric formats can be
converted by JavaView into the MPL or JVX formats and then subsequently imported into Maple
with JVL. When possible, plot characteristics that map between
JavaView and Maple are carried over. For instance, saving a JavaView geometry without
its edges showing will render the geometry likewise when imported into a Maple worksheet. Here we import two
very unorthodox geometries into the Maple plot viewer after using JavaView to save them down as JVL compliant
geometries. It
is possible to import relative to the working path, however MPL files must be
in the /mpl directory and JVX files in the /jvx directory. One drawback of the Maple plot viewer – evidenced by the
porche – is that it is only capable of bi-directional rotation; there are some
vantage points that are not covered by the Maple viewer. Notice that the porche can only be pitched and
rolled, it can never be viewed sideways with its wheels on the
ground.
7 JavaView’s native file format is the XML
based JVX format. XML files with many repeated tags tend to compress
nicely, and
this is indeed the case with
geometric data. After compression, a JVX file is typically reduced from four to six
times its
original size.
JavaView is able to
decompress files internally, so it may be loaded with a zipped MPL or JVX geometry file. This can save in
transport time when loading models into the JavaView applet over the Internet. JVX files are also human readable,
containing only the raw geometric data needed for the model. This
allows geometric data to be inspected for error, or easily parsed by third party
applications.
Consequently, this file
format serves as a point of information interchange between Maple, JavaView and
any third party application
that can
build a format
conversion
utility. In fact, the JavaView
api itself can be used to write such a utility. With JVL, it is possible to
view the XML
markup tree
of a Maple
plot with a single command that exports a JVX file and launches it in the browser.
[> runMarkupTree(plots[polyhedraplot]([0,0,0],polytype=tetrahedron)):
8 After exporting a series of
dynamic
html pages,
a common next
step is to thread the pages
together into
some sort of website, or gallery. JVL accelerates this process by providing a
single command that automatically generates a geometry gallery with a table
of contents indexing into all of the exported html pages. The web savvy directory
structure maintained by JVL serves as an elementary starting point for the creation of more elaborate websites. Here we have created a JavaView
enhanced html page with multiple orthogonal viewports using exportHTMLite to generate an HTML table into which we copy tags generated by genTagLite. The set function specifies the orthogonal views at each generation
step, and viewGallery builds the interface to this and all other html pages found in the
working path.
Notice that
three of
the viewports reference a single instance of a zipped MPL geometry file, and the remaining
viewport references a zipped JVX file
[> b:=plot3d((1.3)^x *
sin(y),x=-1..2*Pi,y=0..Pi,coords=spherical):
[> set(viewDir="0 -1
0", bg="200 200 200", border="on", w=250, h=250):
[> exportHTMLite(b,bounty.mpl.gz):
[> set(viewDir=”0 1 0”):
[>genTagLite(b,bounty.mpl.gz); # copy and paste into
[WP]/mpl/bounty.mpl
<APPLET CODE='jvLite.class'
CODEBASE='../'
ARCHIVE='jars/jv_lite.zip,jars/jvx.jar'
WIDTH='250' HEIGHT='250' ID='JVLAPPLET' ALT='JVL - MAPLE Export'>
<PARAM NAME='Background' VALUE='200 200
200'>
<PARAM NAME='Border' VALUE='Show'>
<PARAM NAME='ViewDir' VALUE='0 1 0'>
<PARAM NAME='Model' VALUE='mpl/bounty.mpl.gz'>
</APPLET>
[> set(viewDir=”0 0 1”):
[>genTagLite(b,bounty.mpl.gz);
<APPLET CODE='jvLite.class'
CODEBASE='../'
ARCHIVE='jars/jv_lite.zip,jars/jvx.jar'
WIDTH='250' HEIGHT='250' ID='JVLAPPLET' ALT='JVL - MAPLE Export'>
<PARAM NAME='Background' VALUE='200 200
200'>
<PARAM NAME='Border' VALUE='Show'>
<PARAM NAME='ViewDir' VALUE='0 0 1'>
<PARAM NAME='Model' VALUE='mpl/bounty.mpl.gz'>
</APPLET>
[> set(viewDir=”1 1 1”,
axes=”boundingbox”, rotate):
[>genTagLite(b,bounty.jvx.gz);
<APPLET CODE='jvLite.class'
CODEBASE='../'
ARCHIVE='jars/jv_lite.zip,jars/jvx.jar'
WIDTH='250' HEIGHT='250' ID='JVLAPPLET' ALT='JVL - MAPLE Export'>
<PARAM NAME='Background' VALUE='200 200
200'>
<PARAM NAME='Border' VALUE='Show'>
<PARAM NAME='ViewDir' VALUE='1 1 1'>
<PARAM NAME='Model' VALUE='jvx/bounty.jvx.gz'>
</APPLET>
Conclusion and Outlook
The JavaViewLib has
made its mark as a proponent of application connectivity. By establishing even a
basic level of connectivity, both JavaView and Maple were enhanced. Maple was
afforded greater visualization and web functionality, while JavaViews’ geometry generation
capabilities were extended to match that of Maple. By bridging these
applications, the JavaViewLib broadens the toolset available for researchers and educators of mathematics and other
disciplines.
At the time of its
development, the JavaViewLib made the best possible use of the connectivity
resources made available by Maple and JavaView. However, in the year since its
release, there is now room for improvement. Both Maple and JavaView appear to be making
considerable advancements in the provision for third party control. JavaView has
introduced a secondary XML file format for the initialization and preservation
of display properties. Through this format, known as JVD, precise control over
camera, lighting, and viewport properties can be specified and launched in conjunction with JavaView. This is
a step in the right direction, but covers only a small portion of JavaView’s
rich feature set. Ideally, this file format will mature into a full featured
scripting language that allows the broad range of JavaView operations to be
applied to the geometry or geometries loaded into the viewer. Maple has
introduced Maplets – an interface library that gives Maple packages more
control over Maple’s user interface and consequently, the transparent look and
feel of a true plug-in. Future plans purport to integrate Java Servlet technologies
with Maple’s Mathematics engine which may finally enable proper third party
integration.
There are a few ideal
implementations of the JavaViewLib not afforded to it. Preferably, it would be possible
to embed JVL as a true third party export plug-in. While there is some provision for Maple objects to
be associated with context menus, the plot object context menu cannot be
overridden. A
right click
over a Maple plot should open a context menu that allows the plot to be exported
to a
JavaView enhanced webpage or geometry file in the same way that a plot can be exported to a static image. Under Maple’s file
menu, it is possible to export as RTF, HTML, LaTeX, and in Maple 7, as HTML with MathML. Ideally, one should be
able to export an entire maple worksheet as a JavaView and MathML enhanced html page, thereby retaining all of the
features of the worksheet. Unfortunately there is no mechanism in place that allows Maples’ menu bar to be customized.
In retrospect, the author
would have preferred to see both Maple and JavaView accessible as algorithmic
engines.
Consider that
comparable applications typically have different internal representations for
the same domain inherent data. This gives rise to a variety of competing file
formats that may or may not be supported across applications. As the source
data is invariant and the application is employed to operate upon it, it seems
reasonable to suggest that the data, and a means of understanding that data be
given to an application engine to perform a desired operation that returns the
modified data in the original format. That data then has the leeway to freely move in an application
connected environment employing the best resources of all participating
applications. Envision a system in which the data lives as a single standardized XML file and a collection of applications all make provision for
scriptable access. One could direct Maple to generate plot data for a given algebra, send the resulting output
to JavaView to be optimized, and then couple the subsequent output
with an animation script to have MAYA render a small video.
It follows
that the
glue connecting the applications should not need to be more sophisticated than scripting language of
the host operating
system, perhaps
along the lines of the following
hypothetical system call:
C:\>
Maple.plot3d(sin(x+y),x=-1..1,y=-1..1) –output(jvx.dtd) | JavaView.[identifyVerticies(0.1),export(obj)] | maya –input(anim.mel)
Desired
improvements
Maple
directions.
References
Dugaro, Steven and Konrad Polthier. Visualizing Maple
Plots with the JavaViewLib. Springer-Verlag, 2002
Proceedings of The
Integration of Algebraic and Geometric Software Systems. 14 – 19 October 2001. Wadern : Schloss Dagstuhl
Nicolaides, Roy, and
Noel Walkington. MAPLE A Comprehensive Introduction. Cambridge:
Cambridge UP, 1996
Dugaro, Steven. “gettingStarted.mws” JavaViewLib
Vers. 1.0. Computer Software. 2000-2002. Maple 6 or higher.
Dugaro, Steven. The JavaViewLib
Website: www.cecm.sfu.ca/news/coolstuff/JVL/htm/webdemo.htm. 2000 - 2002
Polthier, Konrad. The
JavaView Website: www.javaview.de. 1999 - 2002