Zhu3D
Science
Score 83%
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:

11 years ago

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

thidney

8 years ago

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

Report

heinzkde

8 years ago

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

Report

thidney

9 years ago

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 ()

Report

heinzkde

9 years ago

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

Report

thidney

9 years ago

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.

Report

heinzkde

9 years ago

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

Report

heinzkde

9 years ago

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

Report

thidney

9 years ago

Thans Hans, I added myself to that one.

Report

bram85

9 years ago

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

Report

thidney

9 years ago

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

Report

braunm

9 years ago

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’

Report

heinzkde

9 years ago

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.

Report

braunm

9 years ago

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’

Report

heinzkde

9 years ago

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.

Report

bpodq

9 years ago

modify the .pro and add

QT +=opengl

Report

bpodq

9 years ago

cd zhu3d-3.x.x

notice there is a zhu3d.pro, don't enter the directory src

qmake
make

Report

crewe

9 years ago

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?

Report

heinzkde

9 years ago

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

qmake -query "QT_INSTALL_PREFIX"

Report

crewe

9 years ago

it only returned

/usr

I don't know what that's supposed to tell me though...

Report

crewe

9 years ago

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

Report

crewe

9 years ago

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

Report

thidney

10 years ago

are updated, use link above

Report

elhaz

10 years ago

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

Report

virtualmeet

10 years ago

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

Report

djclue917

10 years ago

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.

Report

11 years ago

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

product-maker 45 251

File (click to download) Version Description Filetype Packagetype License Downloads Date Filesize OCS-Install DL
Details
version
4.2.4
updated Apr 18 2013
added Jul 23 2006
downloads today
0
page views today 0