473,769 Members | 7,810 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

3D plotting library / OpenGL

I've been looking for a decent 3D plotting library with support
for user selection that works under OpenGl, preferable with wxPython.

For this first project I need to do a 3D scatter plot with
different colors and glyphs (spheres, crosses, etc.) for the points.
The axes will be labeled and I would like both mouseover and
mouse click selection. There will be at most 2,000 points.

I've found several for making graphs, like DISLIN, but most
don't offer interactivity. I spent many hours trying to get
VTK working on my Mac under both native and X GUI toolkits,
without success. SciGraphica seems close, but it has the
Gtk requirement.

I'm yet unsure about if SciPy fits my needs.

What I was hoping for was a toolkit that worked cross-platform
and assumed OpenGL is available, leaving me to pass it the
OpenGL context and a few other essentials, or something that
made a scene graph that I could render as I wish.

Any pointers, ideas, or suggestions?

Andrew
da***@dalkescie ntific.com

Jul 18 '05 #1
5 6488
Andrew Dalke wrote:
I've been looking for a decent 3D plotting library with support
for user selection that works under OpenGl, preferable with wxPython.

For this first project I need to do a 3D scatter plot with
different colors and glyphs (spheres, crosses, etc.) for the points.
The axes will be labeled and I would like both mouseover and
mouse click selection. There will be at most 2,000 points.

I've found several for making graphs, like DISLIN, but most
don't offer interactivity. I spent many hours trying to get
VTK working on my Mac under both native and X GUI toolkits,
without success. SciGraphica seems close, but it has the
Gtk requirement.


I'd seriously recommend you look at VTK again. I've done exactly what you are
describing with Mayavi:

http://amath.colorado.edu/faculty/fperez/faults/

Disregard the timing info, it's old and with some fixes to MayaVi I wrote
(available in current CVS), and a tweaked glyphs user module (which I can send
you if you want it), the speed is extremely fast even for fairly large
datasets.

Mayavi is finkable, though after using fink to pull it in (so you get vtk and
friends) you might want to update to CVS to get some of the recent fixes which
I think are not yet on the fink version.

Cheers,

f

Jul 18 '05 #2
Andrew Dalke wrote:
I've been looking for a decent 3D plotting library with support
for user selection that works under OpenGl, preferable with wxPython.

For this first project I need to do a 3D scatter plot with
different colors and glyphs (spheres, crosses, etc.) for the points.
The axes will be labeled and I would like both mouseover and
mouse click selection. There will be at most 2,000 points.

I've found several for making graphs, like DISLIN, but most
don't offer interactivity. I spent many hours trying to get
VTK working on my Mac under both native and X GUI toolkits,
without success.
Here are the instructions that I posted to the PythonMac mailing list a
while ago:

Download VTK 4.4 from
http://public.kitware.com/VTK/get-software.php

Download CMake binary installer from
http://www.cmake.org/HTML/Download.html

Attach the CMake disk image and install the package. You will now have,
among other things, programs cmake and ccmake in /usr/local/bin . Make
sure /usr/local/bin is in your PATH.

Unpack the VTK source somewhere.

$ cd ~/src
$ tar zxf ~/downloads/VTK-4.4-LatestRelease.t ar.gz
$ cd VTK

Make a subdirectory named "build".

$ mkdir build
$ cd build

Run ccmake with the main VTK directory as its argument.

$ ccmake ..

You should now be in a curses-based text interface. With my Terminal
color settings, I can't see if the options are highlighted as one moves
the cursor, so just look at the bar near the bottom to see which option
is currently highlighted.

Press [c] to start configuring.

Toggle BUILD_SHARED_LI BS on.

Keep VTK_USE_CARBON on. Do not use VTK_USE_COCOA (The Cocoa
implementation is not compatible with Python, yet).

Toggle VTK_USE_HYBRID on (Mayavi uses the vtkHybrid kit).

Toggle VTK_USE_GL2PS on (useful for printing).

Toggle VTK_WRAP_PYTHON on.

Toggle VTK_WRAP_TCL on (Mayavi needs it).

Press [c] to configure. It should have found your framework Python. If
you have installed TclTkAqua, it should also have found the appropriate
frameworks.

If there are no errors, press [g] to generate the makefiles and exit. If
nothing happens press [c] again and try pressing [g] once more. You may
have to go back and forth pressing [c] and [g] until all information is
found.

Execute make and wait until it finishes. This takes a long time. Make
some coffee. In fact, go to Colombia, harvest the beans, roast them,
grind them, and brew your cup of coffee. When you get back, the build
might be finished.

"make install" will install VTK into /usr/local (or whatever directory
you told it to install to).

Change to the Python wrapper directory and install the Python wrappers.

$ cd Wrapping/Python
$ sudo python setup.py install

Add /usr/local/lib/vtk to your DYLD_LIBRARY_PA TH. You will almost
certainly want to do this in your ~/.bashrc as well.

$ export DYLD_LIBRARY_PA TH=$DYLD_LIBRAR Y_PATH:/usr/local/lib/vtk

You're done!
SciGraphica seems close, but it has the
Gtk requirement.

I'm yet unsure about if SciPy fits my needs.
Not for 3D.
What I was hoping for was a toolkit that worked cross-platform
and assumed OpenGL is available, leaving me to pass it the
OpenGL context and a few other essentials, or something that
made a scene graph that I could render as I wish.

Any pointers, ideas, or suggestions?


OpenGLContext might be your cup of tea. Or Zoe. I don't have much
experience with them, though.

--
Robert Kern
rk***@ucsd.edu

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
Jul 18 '05 #3
I've got a collection of 3D libraries here:
http://www.vrplumber.com/py3d.py?category=retained
http://www.vrplumber.com/py3d.py?category=science

My own OpenGLContext would likely handle what you've described. It's
scenegraph based, can handle fairly large-ish worlds, allows for writing
mouse-over and mouse-click handlers. It has text support using either
2D or 3D text, and can load VRML97 for defining geometry (spheres,
crosses, and the like). It runs under wxPython, GLUT, PyGame, or (with
some limitations) Tkinter.

On the other hand, scientific visualisation *isn't* it's focus, so one
of the items from the science category might be more appropriate.

Anyway, HTH,
Mike

Andrew Dalke wrote:
I've been looking for a decent 3D plotting library with support
for user selection that works under OpenGl, preferable with wxPython.

....
What I was hoping for was a toolkit that worked cross-platform
and assumed OpenGL is available, leaving me to pass it the
OpenGL context and a few other essentials, or something that
made a scene graph that I could render as I wish.

....
_______________ _______________ _______________ ___
Mike C. Fletcher
Designer, VR Plumber, Coder
http://www.vrplumber.com
http://blog.vrplumber.com

Jul 18 '05 #4
Robert Kern:
Here are the instructions that I posted to the PythonMac mailing list a
while ago:
Thanks. I am able to build and install VTK as per your instructions,
except that I don't see an option for
Toggle VTK_USE_GL2PS on (useful for printing).


Once installed the Examples/Rendering/Python scripts work.
However, I need to get it working under wx and when I try
running Wrapping/Python/vtk/wx/wxVTKRenderWind owInteractor.py
I get the wxRenderWindow to open but there is no cone
displayed in it. The content of the window is blank.

I'm using wx version '2.5.3.1'

Any ideas?

Andrew
da***@dalkescie ntific.com

Jul 18 '05 #5
Andrew Dalke wrote:
Robert Kern:
Here are the instructions that I posted to the PythonMac mailing list a
while ago:

Thanks. I am able to build and install VTK as per your instructions,
except that I don't see an option for

Toggle VTK_USE_GL2PS on (useful for printing).


Oops. Sorry. Press 't' to toggle the display of advanced options. It's
not important, though.
Once installed the Examples/Rendering/Python scripts work.
However, I need to get it working under wx and when I try
running Wrapping/Python/vtk/wx/wxVTKRenderWind owInteractor.py
I get the wxRenderWindow to open but there is no cone
displayed in it. The content of the window is blank.

I'm using wx version '2.5.3.1'

Any ideas?


I'm afraid I don't. Sorry.

--
Robert Kern
rk***@ucsd.edu

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
Jul 18 '05 #6

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

Similar topics

7
3073
by: Russell E. Owen | last post by:
Can anyone recommend a fast cross-platform plotting package for 2-D plots? Our situation: We are driving an instrument that outputs data at 20Hz. Control is via an existing Tkinter application (which is being extended for this new instrument) that runs on unix, mac and windows. We wish to update 5-10 summary plots at approximately 2 Hz and will be offering controls to control the instrument and the plots, preferably (but not...
7
2826
by: Rolf Wester | last post by:
Hi, I have a Python console application that is intended to be used interactively and I have to add plotting capabilities (multiple XY plots and if possible 2D-surface plots). I'm loocking for a reasonably fast plotting library (not GPL'ed, needs not be for free) that can be used under Windows. An alternative would also be a standalone application that can be controlled via TCP/IP from my Python application. I tried matplotlib but this...
2
2940
by: KevinGPO | last post by:
I am making a monitor program for the PC. My monitor program will grab statistics about CPU and memory every 1 or 5 seconds. Then I want to store this data so I have a history and hence be able to graph this out in my GUI. I thought about using a plain text file to store my graph data and plot it out. Plot it out manually or use gnuplot. I found this tool called RRDTool (http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/). It's a...
5
11694
by: michael.s.gilbert | last post by:
hello all, this message is geared toward those of you in the scientific community. i'm looking for a python plotting library that can support rendering greek symbols and other various characters on plot axes labels, etc. I would prefer something that adheres to tex formatting (as implemented in latex, matlab, etc and has the form $\alpha$ to represent the greek character alpha for example). thus far, i've found that matplotlib
8
1712
by: Freddy | last post by:
Hi guys, I have a quick question, I have a program that generates numerical output (as most of the programs), the program is written in C language, and currently I use the "DOS interface to show the output when it is being generated. is there a "short" and "non-complicated" code which plots the data automatically instead of showing the numbers.
10
5221
by: Bad_Kid | last post by:
which is better for what?
7
6850
by: diffuser78 | last post by:
My python program spits lot of data. I take that data and plot graphs using OfficeOrg spredsheet. I want to automate this task as this takes so much of time. I have some questions. 1. Which is the best graph plotting utility in python or linux. Can I write a code in such a way that my python code automatically gives me a graph. I know little about gnuplot. If you know any better tool without much learning curve please tell me in Linux. ...
1
7072
by: T. Crane | last post by:
Hi, I am looking for a good plotting library. I intend to do 3D surface plots, 2D contour, 3D waterfall, etc. Right now I have access to National Instruments' Measurement Studio, and it's supposed to provide some plotting classes, but I've never used it. Does anyone have any experience with NI's Meas. Studio? Can someone suggest a good plotting library that I might want to use instead of Meas. Studio? Is there a community standard?
0
1933
by: Helmut Michels | last post by:
Dear C/C++ programmers, I am pleased to announce version 9.4 of the data plotting software DISLIN. DISLIN is a high-level and easy to use plotting library for displaying data as curves, bar graphs, pie charts, 3D-colour plots, surfaces, contours and maps. Several output formats are supported such as X11, VGA, PostScript, PDF, CGM, WMF, HPGL, TIFF, GIF, PNG, BMP and SVG.
0
9589
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
10049
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
9998
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
8876
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...
0
6675
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5310
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...
1
3967
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
2
3567
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2815
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.