Source i (link to git-repo or to original if based on someone elses unmodified work):

Add the source-code for this project on opencode.net

1
Become a Fan
5.0

Available as/for:
Description:
Zhu3D is an interactive OpenGL-based mathematical function viewer. You can visualize explicite functions, parametric systems and isosurfaces. The viewer supports zooming, scaling and rotating as well as filed lighting or surface properties. Special effects are animation, morphing, transparency, textures, fog and motion blur. Equation systems can be solved with a fast adaptive random search.

You have up to 8 lights, background settings, wire-modes or different illumination models. For picture rendering and textures all common pic-formats are recognized. You can define your own customized functions to any desired complexity level, nested or even recursive functions inclusively. For special purposes if-clauses and boolean operators are supported. Isosurfaces can use different volume-based algorithms.

Zhu3D is originally designed for *nix-systems, but runs as well under Mac OS X or Windows 2000-Vista in all 32/64 bit-flavours. It is fully localized for English, German, Spanish, French and Chinese and partially for Czech (Gui only). API's like KDE, Gnome, Motif, Mac OS or Windows XP/Vista are supported natively. All these settings as well as most others can be changed dynamically at runtime. The application comes with extended help files and a lot of examples. A precompiled and ready-to-go Windows version is available.

HARDWARE:

For basic tasks even a really slow and ancient PC without HW-OpenGL may be sufficient. However, neat things like motion blur, morphing or isosorfaces are a challenge for every GPU/CPU out there. Zhu3D automatically utilizes up to 16 highly optimized parallel threads therefore. When compiling by yourself, you easely can enable vectorizing with SSE3 as an additional boost-option.

COMPILING:

All unnecessary dependencies are strictly avoided. So compiling is a mere child's play at your fingertips. Everything you need is Qt >=4.3 and OpenGL >=1.4 whereas OpenGL may even be a pure software implementation like Mesa. The qmake easily can be taylored for special needs, what supports packagers.


Have fun, Heinz van Saanen
Last changelog:

What is new in 4.2.6

- Removed loading of real ancient Zhu3D-files
- Workaround for 'gluPerspective' error in Qt4 4.8.4
- Fixed compile error on older Suse/Mandriva i686. Special thanks to Pavel for reports
- Fixed tsc-compile error on older Mandriva i686. Special thanks to Pavel for reports
- Fixed tsc-compile error on newest ICC
- Improved Makefile for compilations for newer Intel ICC
- Improved Czech translation. Special thanks to Pavel
- Cosmetic improvements/updates or typo-fixes elsewhere

What was new in 4.2.4

- Fixed a very unlikely but possible memory-bug in the XML-file saving/loading-part
- Fixed a very unlikely but possible memory-leak in speedit.cpp
- Fixes for the timestamp-counter on newer platforms
- Slightly optimized some default window positions after the 1.st start ever
- Made settings-stuff more elegant throughout the code what shrinks the executable size too
- Enabled strip option -s as default compiler switch, what leads to slightly smaller executables
- Disabled senseless -ffast-math switch for GCC
- Switched icons to more modern KDE4-style where this seems optically feasible and consistent
- Cosmetic improvements/updates or typo-fixes elsewhere


Ratings & Comments

49 Comments

thidney

11.1 rpms are done. https://api.opensuse.org/build/home:thidney/openSUSE_11.1/i586/zhu3d/zhu3d-4.1.8-5.1.i586.rpm Zhu3d is build in my home directory, till I get into multimedia group, again. I have question for you and kde-apps admin. Is it possible to create stable link to this project? something like www.kde-apps.org/~zhu3d? or simillar? Is it quite ugly to put links into documentation like http://www.kde-apps.org/content/show.php?content=43071

heinzkde

Thank you form the rpm, thidney. The link could not be changed from my side. At least the link never changes and is always stable:-) Kind regards, Heinz

thidney

I pack latest version for opensuse, but I get SIGSEGV. opengl works in my system. Here is gdb output: gdb) #0 0x0000000000000000 in ?? () (gdb) #1 0x00002afb98b47e4f in _nv001444gl () from /usr/X11R6/lib64/libGLcore.so.1 (gdb) #2 0x00002aaab1326ebf in ?? () from /usr/lib64/libGL.so (gdb) #3 0x00002aaab132dade in _init () from /usr/lib64/libGL.so (gdb) #4 0x00002afb934c0c56 in ?? () from /lib64/ld-linux-x86-64.so.2 (gdb) #5 0x00002afb934c0d7e in ?? () from /lib64/ld-linux-x86-64.so.2 (gdb) #6 0x00002afb934c4bf0 in ?? () from /lib64/ld-linux-x86-64.so.2 (gdb) #7 0x00002afb934c08e6 in ?? () from /lib64/ld-linux-x86-64.so.2 (gdb) #8 0x00002afb934c43bb in ?? () from /lib64/ld-linux-x86-64.so.2 (gdb) #9 0x00002afb96be3fdb in ?? () from /lib64/libdl.so.2 (gdb) #10 0x00002afb934c08e6 in ?? () from /lib64/ld-linux-x86-64.so.2 (gdb) #11 0x00002afb96be436d in ?? () from /lib64/libdl.so.2 (gdb) #12 0x00002afb96be3f41 in dlopen () from /lib64/libdl.so.2 (gdb) #13 0x00002afb9606c2ed in QLibraryPrivate::load_sys () from /usr/lib64/libQtCore.so.4 (gdb) #14 0x00002afb960688e5 in QLibraryPrivate::load () from /usr/lib64/libQtCore.so.4 (gdb) #15 0x00002afb9606891f in QLibrary::load () from /usr/lib64/libQtCore.so.4 (gdb) #16 0x00002afb96068949 in QLibrary::resolve () from /usr/lib64/libQtCore.so.4 (gdb) #17 0x00002afb93713a45 in QGLContext::getProcAddress () from /usr/lib64/libQtOpenGL.so.4 (gdb) #18 0x00002afb936f3410 in QGLExtensions::init_extensions () from /usr/lib64/libQtOpenGL.so.4 (gdb) #19 0x00002afb93714261 in QGLExtensions::init () from /usr/lib64/libQtOpenGL.so.4 (gdb) #20 0x00002afb936ef12a in QGLWidgetPrivate::initContext () from /usr/lib64/libQtOpenGL.so.4 (gdb) #21 0x00002afb93713687 in QGLWidgetPrivate::init () from /usr/lib64/libQtOpenGL.so.4 (gdb) #22 0x00002afb936ef661 in QGLWidget::QGLWidget () from /usr/lib64/libQtOpenGL.so.4 (gdb) #23 0x000000000043088a in OGLWidget (this=0x7fff175f34b0, parent=0x2aaab146eef8) at src/glwidget.cpp:63 (gdb) #24 0x000000000041059d in main (argc=1, argv=0x7fff175f4378) at src/main.cpp:224 (gdb) #25 0x00002afb97bdbb54 in __libc_start_main () from /lib64/libc.so.6 (gdb) #26 0x000000000040fcc9 in _start ()

heinzkde

nvidia+drivers from the repo? for good reasons i added the following hint to the latest readme: openSUSE 10.3 seems to fail with NVIDIA-drivers from the repository. Just install the driver manually instead, what fixes the quirks. hope this helps, heinz

thidney

this was nicest RTFM I ever get :) I will give it a try. Anyway it is quite strange that it do not work. Could you please confirm that you are sure about you code? I would like create bug report for it if so. Thanks.

heinzkde

at the moment i am quite sure it's not a zhu-problem. a few days ago a user reported this strange stuff too. we tracked this down with virtually the same configurations, but one difference: mine worked, his not. then i remembered, that i had similar nvidia troubles in october, until i updated manually. this worked for him too. really strange is, that the opengl-stuff seems to work. until you compile by yourself. in at least 2 certified cases this happend for the qt4 hellogl-example too. have a look at install.txt. there you will find a cross-table of tested and proved configurations. kind regards, heinz

heinzkde

just to inform you: one of the affected zhu-users sent a bug-report to novell. you can find it, the following discussion and a bug-acceptance under: https://bugzilla.novell.com/show_bug.cgi?id=368834 i am still not shure, whether novell or trolltech is the "bad guy" to blame. but it seems quite obvious, that zhu-code is not involved. kind regards, heinz

thidney

Thans Hans, I added myself to that one.

bram85

Gentoo ebuild can be found here: http://repo.or.cz/w/kdeapps-overlay.git?a=blob;f=sci-mathematics/zhu3d/zhu3d-3.4.2.ebuild;hb=HEAD

thidney

are updated, currently I have some problems with 10.2 but 10.3 and 10.1 are ready.

braunm

Hi. I am looking forward to trying Zhu3d (version 3.3.4), but I am having trouble building it on RHEL5. I should note that I am a lowly end user, not a developer, so I could use a little bit of hand-holding here. qmake ran with no problem, but when I ran make, I got a large number of errors, a small subset of which I listed below. I am running RHEL5 on an x86_64 machine. Can you help? Thanks, Michael [braunm@braunm2 zhu3d-3.3.4]$ make g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/lib64/qt4/include/QtCore -I/usr/lib64/qt4/include/QtCore -I/usr/lib64/qt4/include/QtGui -I/usr/lib64/qt4/include/QtGui -I/usr/lib64/qt4/include/QtOpenGL -I/usr/lib64/qt4/include/QtOpenGL -I/usr/lib64/qt4/include -I. -I. -o main.o src/main.cpp \\\\\\\\./ui_mainwindow.h: In member function ‘void Ui_mainCtrl::setupUi(QWidget*)’: ./ui_mainwindow.h:84: error: ‘class QGridLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:85: error: ‘class QGridLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:86: error: ‘class QGridLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:87: error: ‘class QGridLayout’ has no member named ‘setBottomMargin’ ./ui_mainwindow.h:88: error: ‘class QGridLayout’ has no member named ‘setHorizontalSpacing’ ./ui_mainwindow.h:89: error: ‘class QGridLayout’ has no member named ‘setVerticalSpacing’ ./ui_mainwindow.h:101: error: ‘class QGridLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:102: error: ‘class QGridLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:103: error: ‘class QGridLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:104: error: ‘class QGridLayout’ has no member named ‘setBottomMargin’ ./ui_mainwindow.h:105: error: ‘class QGridLayout’ has no member named ‘setHorizontalSpacing’ ./ui_mainwindow.h:106: error: ‘class QGridLayout’ has no member named ‘setVerticalSpacing’ ./ui_mainwindow.h:165: error: ‘class QVBoxLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:166: error: ‘class QVBoxLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:167: error: ‘class QVBoxLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:168: error: ‘class QVBoxLayout’ has no member named ‘setBottomMargin’ ./ui_mainwindow.h:224: error: ‘class QVBoxLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:225: error: ‘class QVBoxLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:226: error: ‘class QVBoxLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:227: error: ‘class QVBoxLayout’ has no member named ‘setBottomMargin’ ./ui_mainwindow.h:235: error: ‘class QHBoxLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:236: error: ‘class QHBoxLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:237: error: ‘class QHBoxLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:238: error: ‘class QHBoxLayout’ has no member named ‘setBottomMargin’ ./ui_mainwindow.h:288: error: ‘class QGridLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:289: error: ‘class QGridLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:290: error: ‘class QGridLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:291: error: ‘class QGridLayout’ has no member named ‘setBottomMargin’ ./ui_mainwindow.h:292: error: ‘class QGridLayout’ has no member named ‘setHorizontalSpacing’ ./ui_mainwindow.h:293: error: ‘class QGridLayout’ has no member named ‘setVerticalSpacing’ ./ui_mainwindow.h:410: error: ‘class QHBoxLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:411: error: ‘class QHBoxLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:412: error: ‘class QHBoxLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:413: error: ‘class QHBoxLayout’ has no member named ‘setBottomMargin’ ./ui_aniedit.h: In member function ‘void Ui_aniUI::setupUi(QWidget*)’: ./ui_aniedit.h:53: error: ‘class QGridLayout’ has no member named ‘setLeftMargin’ ./ui_aniedit.h:54: error: ‘class QGridLayout’ has no member named ‘setTopMargin’ ./ui_aniedit.h:55: error: ‘class QGridLayout’ has no member named ‘setRightMargin’ ./ui_aniedit.h:56: error: ‘class QGridLayout’ has no member named ‘setBottomMargin’ ./ui_aniedit.h:57: error: ‘class QGridLayout’ has no member named ‘setHorizontalSpacing’ ./ui_aniedit.h:58: error: ‘class QGridLayout’ has no member named ‘setVerticalSpacing’ ./ui_aniedit.h:64: error: ‘class QHBoxLayout’ has no member named ‘setLeftMargin’

heinzkde

Hello Michael, 64-Bit is definitly not the reason and the make command looks quite healthy. I guess, it is the Qt-designer, where Trolltech has built in some new functions depending on Qt 4.3. With other words: updating to a newer Qt should quite likely solve the problem.

braunm

I installed Qt 4.3.3 and I am still getting errors (below). Could it be related to OpenGL? I can I tell if I have the right version, etc? Thanks, Michael [braunm@braunm2 zhu3d-3.3.4]$ make g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.3.3/mkspecs/linux-g++-64 -I. -I/usr/local/Trolltech/Qt-4.3.3/include/QtCore -I/usr/local/Trolltech/Qt-4.3.3/include/QtCore -I/usr/local/Trolltech/Qt-4.3.3/include/QtGui -I/usr/local/Trolltech/Qt-4.3.3/include/QtGui -I/usr/local/Trolltech/Qt-4.3.3/include/QtOpenGL -I/usr/local/Trolltech/Qt-4.3.3/include -I/usr/X11R6/include -I. -I. -o main.o src/main.cpp In file included from src/mainwindow.h:31, from src/main.cpp:28: src/glwidget.h:20:51: error: QGLWidget: No such file or directory In file included from src/mainwindow.h:45, from src/main.cpp:28: src/sysinfo.h:22:42: error: QtOpenGL: No such file or directory ./ui_mainwindow.h: In member function ‘void Ui_mainCtrl::setupUi(QWidget*)’: ./ui_mainwindow.h:84: error: ‘class QGridLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:85: error: ‘class QGridLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:86: error: ‘class QGridLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:87: error: ‘class QGridLayout’ has no member named ‘setBottomMargin’ ./ui_mainwindow.h:101: error: ‘class QGridLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:102: error: ‘class QGridLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:103: error: ‘class QGridLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:104: error: ‘class QGridLayout’ has no member named ‘setBottomMargin’ ./ui_mainwindow.h:165: error: ‘class QVBoxLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:166: error: ‘class QVBoxLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:167: error: ‘class QVBoxLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:168: error: ‘class QVBoxLayout’ has no member named ‘setBottomMargin’

heinzkde

Do the OpenGL-examples from Qt 4.3.3 work or can you re-compile them? Then you have a valid install. Maybe it is the best, you email me your makefile produced by qmake.

bpodq

modify the .pro and add QT +=opengl

bpodq

cd zhu3d-3.x.x notice there is a zhu3d.pro, don't enter the directory src qmake make

crewe

I'm running Xubuntu on an amd64 system and when I qmake I get these conflicts Quote:

WARNING: Found potential symbol conflict of mainwindow.cpp (src/mainwindow.cpp) in SOURCES WARNING: Found potential symbol conflict of mainwindow.h (src/mainwindow.h) in HEADERS WARNING: Found potential symbol conflict of ligedit.cpp (src/ligedit.cpp) in SOURCES WARNING: Found potential symbol conflict of ligedit.h (src/ligedit.h) in HEADERS WARNING: Found potential symbol conflict of matedit.cpp (src/matedit.cpp) in SOURCES WARNING: Found potential symbol conflict of matedit.h (src/matedit.h) in HEADERS WARNING: Found potential symbol conflict of entedit.cpp (src/entedit.cpp) in SOURCES WARNING: Found potential symbol conflict of entedit.h (src/entedit.h) in HEADERS WARNING: Found potential symbol conflict of aniedit.cpp (src/aniedit.cpp) in SOURCES WARNING: Found potential symbol conflict of aniedit.h (src/aniedit.h) in HEADERS WARNING: Found potential symbol conflict of picedit.cpp (src/picedit.cpp) in SOURCES WARNING: Found potential symbol conflict of picedit.h (src/picedit.h) in HEADERS WARNING: Found potential symbol conflict of funedit.cpp (src/funedit.cpp) in SOURCES WARNING: Found potential symbol conflict of funedit.h (src/funedit.h) in HEADERS WARNING: Found potential symbol conflict of speedit.cpp (src/speedit.cpp) in SOURCES WARNING: Found potential symbol conflict of speedit.h (src/speedit.h) in HEADERS WARNING: Found potential symbol conflict of diredit.cpp (src/diredit.cpp) in SOURCES WARNING: Found potential symbol conflict of diredit.h (src/diredit.h) in HEADERS WARNING: Found potential symbol conflict of error.cpp (src/error.cpp) in SOURCES WARNING: Found potential symbol conflict of error.h (src/error.h) in HEADERS
Any clues?

heinzkde

Only one clue. Maybe you are using the "wrong" qmake for Qt 3.x. You can check this with: qmake -query "QT_INSTALL_PREFIX"

crewe

it only returned /usr I don't know what that's supposed to tell me though...

crewe

okay I think I fixed that issue, I read the previous post about the sudo linking, and that was fixed but now when I make I get this: Quote:

/usr/bin/uic-qt4 src/ui/mainwindow.ui -o ui_mainwindow.h /usr/bin/uic-qt4 src/ui/ligedit.ui -o ui_ligedit.h /usr/bin/uic-qt4 src/ui/matedit.ui -o ui_matedit.h /usr/bin/uic-qt4 src/ui/entedit.ui -o ui_entedit.h /usr/bin/uic-qt4 src/ui/aniedit.ui -o ui_aniedit.h /usr/bin/uic-qt4 src/ui/picedit.ui -o ui_picedit.h /usr/bin/uic-qt4 src/ui/funedit.ui -o ui_funedit.h /usr/bin/uic-qt4 src/ui/speedit.ui -o ui_speedit.h /usr/bin/uic-qt4 src/ui/diredit.ui -o ui_diredit.h /usr/bin/uic-qt4 src/ui/error.ui -o ui_error.h g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4 -I/usr/X11R6/include -I. -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4 -I/usr/X11R6/include -I. -I. -o main.o src/main.cpp make: g++: Command not found make: *** [main.o] Error 127

crewe

all fixed, and now to run the program thanks for the help

thidney

are updated, use link above

elhaz

hi guys i have been solved the problem with the qt4 debian unstable package with this: $sudo mv /etc/alternatives/qmake /etc/alternatives/qmake-qt3 $sudo ln -s /usr/bin/qmake-qt4 /etc/alternatives/qmake when u install qt4 he don't change the simbolic link in 'alternatives' and when you try to run qmake, you create the Makefile with a qt3 version

virtualmeet

Congratulation for Zhu3D. I just update K3DSurf to see that you too have done it few minutes before me :). Keep up the good work.

djclue917

Just a thought... Maybe you two could work together to produce a super killer app. I know, I know, Zhu3D is based on QT4 and K3DSurf is based on QT3. But it would be nice if both of you could share ideas and skills to develop a KDE4-based app. I believe the APIs are stable now. Just my two cents.

Pling
0 Affiliates
Details
license
version 4.2.4
updated
added
downloads 24h 0
mediaviews 24h 0
pageviews 24h 1

More Science from heinzkde:

Zhu3D
heinzkde
last update date: 12 years ago

Score 5.7

Other Science:

Julius Model Viewer
juergenmueller
last update date: 18 years ago

Score 5.0

Folding@KDE
Ruudiculus-KDE
last update date: 17 years ago

Score 5.0

nanoKalc
arenyart
last update date: 19 years ago

Score 5.0

Kejsare
josef80
last update date: 19 years ago

Score 5.0

qtsolartron
jellofishi
last update date: 17 years ago

Score 5.0

QFraktal
ruedigerknoerig
last update date: 16 years ago

Score 5.0



System Tags