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.7

Available as/for:
Description:
A Qt4 application for editing cosmic recursive flame fractal images.
Last changelog:

Version 1.5.0

- Compatibility updates for flam3-3.0.1.
- Enhanced directory browsing widget.
- Added move, rotate, scale, and flip modes to the triangle editor.
- Added xform previews and rendering enhancements to the triangle editor.
- Added a genome palette histogram to the xform color selector.
- Enhanced flam3 types in Lua scripts.
- Alpha channel and HSV colorspace support for ggr gradients.
- Enhanced mutations editor.
- Enhanced genome selector.
- New sheep loop animation widget.
- Added a configuration dialog for the autosave feature.
- Enhanced tree view in the variations widget.
- Added a message output pane to the Lua script editor.
- Fixed a bug when modifying coefs in the coordinates widget.
- Added drag+drop support to mutations, directory browser, and genome selector.


Ratings & Comments

27 Comments

AlfredoC

Hi, I'm trying to port this app to Qt 5.5 So far, I get the application to compile without error, but it throws a segmentation error on start up. It seams that the error occurs in renderthread.cpp calling the flam3_render function. When I comment this line out, everything works fine, (apart rendering ;-) Has somebody any idea that can help me? Thanks in advance.

pinquin2008

Hi! I can't compile. These are some messages: .obj/frame.o: In function `Lua::Frame::num_genomes(lua_State*)': frame.cpp:(.text+0xcb): undefined reference to `lua_pushinteger' frame.cpp:(.text+0x20e): undefined reference to `luaL_checkinteger' .obj/frame.o: In function `Lua::Frame::copy_genome(lua_State*)': genome.cpp:(.text+0x10b): undefined reference to `luaL_checkinteger' genome.cpp:(.text._ZN3Lua5LunarINS_5XFormEE4pushEP9lua_StatePS1_b[Lua::Lunar<Lua::XForm>::push(lua_State*, Lua::XForm*, bool)]+0x32): undefined reference to `lua_getfield' xform.cpp:(.text+0x102): undefined reference to `luaL_checknumber' .obj/xform.o: In function `Lua::XForm::supershape_pm_4(lua_State*)': luathread.cpp:(.text+0x96): undefined reference to `lua_pushinteger' luathread.cpp:(.text+0xae): undefined reference to `lua_setfield' .obj/luathread.o: In function `Lua::Lunar<Lua::Frame>::gc_T(lua_State*)': luathread.cpp:(.text._ZN3Lua5LunarINS_5FrameEE4gc_TEP9lua_State[Lua::Lunar<Lua::Frame>::gc_T(lua_State*)]+0x1e): undefined reference to `luaL_getmetafield' .obj/luathread.o: In function `Lua::Lunar<Lua::XForm>::thunk(lua_State*)': luathread.cpp:(.text._ZN3Lua5LunarINS_6GenomeEE8RegisterEP9lua_State[Lua::Lunar<Lua::Genome>::Register(lua_State*)]+0x20): undefined reference to `lua_createtable' luathread.cpp:(.text._ZN3Lua5LunarINS_6GenomeEE8RegisterEP9lua_State[Lua::Lunar<Lua::Genome>::Register(lua_State*)]+0x3a): undefined reference to `luaL_newmetatable' luathread.cpp:(.text._ZN3Lua5LunarINS_6GenomeEE8RegisterEP9lua_State[Lua::Lunar<Lua::Genome>::Register(lua_State*)]+0x195): undefined reference to `lua_createtable' collect2: ld returned 1 exit status make: *** [qosmic] Error 1 error while building qosmic Thanks for your help.

simpl

The linker can't find liblua. Try to find liblua.so on your system, and then add the directory it resides in to the LIBS variable in qosmic.pro like this: LIBS += -L/full-path/to/liblua/ Then run the build.sh script again.

heinzkde

Compiling for 64 bit gives a small error: src/renderthread.cpp: In member function ‘void RenderThread::render(RenderRequest*)’: src/renderthread.cpp:425: error: cast from ‘RenderRequest*’ to ‘uint’ loses precision To correct this, just replace (uint) with (long) and it compiles flawlessly. Funny application!

simpl

Thanks, I've made the change.

dovidhalevi

One may need to edit build.sh to run qmake-qt4 (or symlink qmake to that if not defaulted this way to build, then switch back). I also needed to place -I/usr/include/lau5.1 in the Makefile include list. Now compiling OK so we'll see.

dovidhalevi

Also needed to change -llua5.1 in the Makefile library list. Works fine -- now to learn how to make all those wonderful flames!

simpl

Thanks, I've added this to the README.

EseNoy

Hi, I'm trying to install Qosmic, and the script returns me an error: /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:977: undefined reference to `gaussian_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:980: undefined reference to `hermite_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:983: undefined reference to `box_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:986: undefined reference to `triangle_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:989: undefined reference to `bell_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:992: undefined reference to `b_spline_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:995: undefined reference to `mitchell_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:998: undefined reference to `blackman_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:1001: undefined reference to `catrom_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:1004: undefined reference to `hanning_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:1007: undefined reference to `hamming_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:1010: undefined reference to `lanczos3_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:1013: undefined reference to `lanczos2_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:1016: undefined reference to `quadratic_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:1019: undefined reference to `gaussian_filter' .obj/mainwindow.o: In function `MainWindow::setFlameXML(char*)': /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:719: undefined reference to `flam3_parse_xml2' .obj/mainwindow.o: In function `MainWindow::updateFormData(Triangle*)': /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:280: undefined reference to `gaussian_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:282: undefined reference to `hermite_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:284: undefined reference to `box_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:286: undefined reference to `triangle_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:288: undefined reference to `bell_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:290: undefined reference to `b_spline_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:292: undefined reference to `mitchell_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:294: undefined reference to `blackman_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:296: undefined reference to `catrom_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:298: undefined reference to `hanning_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:300: undefined reference to `hamming_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:302: undefined reference to `lanczos3_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:304: undefined reference to `lanczos2_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:306: undefined reference to `quadratic_filter' .obj/xfedit.o: In function `FigureEditor::removeTriangleAction()': /home/n0y/descargas/flam3/qosmic/src/xfedit.cpp:635: undefined reference to `flam3_delete_xform' .obj/xfedit.o: In function `FigureEditor::addTriangleAction()': /home/n0y/descargas/flam3/qosmic/src/xfedit.cpp:601: undefined reference to `flam3_add_xforms' .obj/flam3util.o: In function `copy_genome(flam3_genome*, flam3_genome*)': /home/n0y/descargas/flam3/qosmic/src/flam3util.cpp:53: undefined reference to `flam3_add_xforms' .obj/renderthread.o: In function `RenderThread::run()': /home/n0y/descargas/flam3/qosmic/src/renderthread.cpp:174: undefined reference to `flam3_init_frame' .obj/mutationwidget.o: In function `MutationWidget::reset()': /home/n0y/descargas/flam3/qosmic/src/mutationwidget.cpp:167: undefined reference to `flam3_copy' .obj/mutation.o: In function `truncate_variations': /home/n0y/descargas/flam3/qosmic/src/mutation.c:55: undefined reference to `flam3_delete_xform' .obj/mutation.o: In function `flam3_mutate': /home/n0y/descargas/flam3/qosmic/src/mutation.c:193: undefined reference to `flam3_init_frame' /home/n0y/descargas/flam3/qosmic/src/mutation.c:255: undefined reference to `flam3_copy' /home/n0y/descargas/flam3/qosmic/src/mutation.c:275: undefined reference to `flam3_copy' /home/n0y/descargas/flam3/qosmic/src/mutation.c:276: undefined reference to `flam3_copy' /home/n0y/descargas/flam3/qosmic/src/mutation.c:302: undefined reference to `flam3_copy_params' /home/n0y/descargas/flam3/qosmic/src/mutation.c:426: undefined reference to `flam3_add_xforms' /home/n0y/descargas/flam3/qosmic/src/mutation.c:449: undefined reference to `flam3_delete_xform' /home/n0y/descargas/flam3/qosmic/src/mutation.c:487: undefined reference to `flam3_apply_template' /home/n0y/descargas/flam3/qosmic/src/mutation.c:498: undefined reference to `flam3_copy' collect2: ld devolvió el estado de salida 1 make: *** [qosmic] Error 1 I tried the LocoMojo solution with no results. Can you help me, please?

simpl

It looks like the linker can't find the libflam3.a library. Can you check that qosmic/flam3/libflam3.a exists?

EseNoy

Yes, it's there, in: /qosmic/flam3

EseNoy

The problem was a previous install of Flam3, i removed it and the script runs nice!! Thank you! Now let's try your creation!!

LocoMojo

Hey simpl, Just downloaded and compiled the new version without a hitch. Qosmic is pretty nifty, I've had a lot of fun with it and I've created a few keepers so far. One thing missing though, it would be nice if there were a progressbar or some indication in the status bar that qosmic was working. Good work and thanks for releasing it. LocoMojo

LocoMojo

I'm having trouble compiling this. I'm using qt-4.3.1. flam3/libflam3.a(flam3.o): In function `flam3_edit_print': flam3.c:(.text+0x5fdf): undefined reference to `xmlStrcmp' flam3.c:(.text+0x600c): undefined reference to `xmlGetProp' flam3.c:(.text+0x6032): undefined reference to `xmlFree' flam3.c:(.text+0x60af): undefined reference to `xmlStrcmp' flam3.c:(.text+0x60ed): undefined reference to `xmlIsBlankNode' flam3.c:(.text+0x6136): undefined reference to `xmlStrcmp' flam3.c:(.text+0x61a8): undefined reference to `xmlNodeGetContent' flam3.c:(.text+0x6236): undefined reference to `xmlStrcmp' flam3/libflam3.a(flam3.o): In function `flam3_print': flam3.c:(.text+0x7694): undefined reference to `xmlDocGetRootElement' flam3/libflam3.a(flam3.o): In function `scan_for_flame_nodes': flam3.c:(.text+0x192aa): undefined reference to `xmlStrcmp' flam3.c:(.text+0x192fc): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19338): undefined reference to `xmlFree' flam3.c:(.text+0x19356): undefined reference to `xmlGetProp' flam3.c:(.text+0x19370): undefined reference to `xmlStrcmp' flam3.c:(.text+0x193b2): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19427): undefined reference to `xmlStrcmp' flam3.c:(.text+0x1946b): undefined reference to `xmlStrcmp' flam3.c:(.text+0x194ad): undefined reference to `xmlFree' flam3.c:(.text+0x194c3): undefined reference to `xmlGetProp' flam3.c:(.text+0x194d8): undefined reference to `xmlStrcmp' flam3.c:(.text+0x1950b): undefined reference to `xmlFree' flam3.c:(.text+0x19672): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19699): undefined reference to `xmlStrcmp' flam3.c:(.text+0x196ca): undefined reference to `xmlFree' flam3.c:(.text+0x196e4): undefined reference to `xmlGetProp' flam3.c:(.text+0x196f9): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19736): undefined reference to `xmlStrcmp' flam3.c:(.text+0x197a2): undefined reference to `xmlStrcmp' flam3.c:(.text+0x197e7): undefined reference to `xmlFree' flam3.c:(.text+0x19801): undefined reference to `xmlGetProp' flam3.c:(.text+0x19818): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19862): undefined reference to `xmlStrcmp' flam3.c:(.text+0x198a3): undefined reference to `xmlStrcmp' flam3.c:(.text+0x198be): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19915): undefined reference to `xmlNodeGetContent' flam3.c:(.text+0x1993c): undefined reference to `xmlFree' flam3.c:(.text+0x19954): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19a57): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19a72): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19b5c): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19b7e): undefined reference to `xmlGetProp' flam3.c:(.text+0x19b93): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19bc6): undefined reference to `xmlFree' flam3.c:(.text+0x19bf5): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19c10): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19dae): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19dc5): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19dfa): undefined reference to `xmlStrcmp' flam3/libflam3.a(flam3.o):flam3.c:(.text+0x19e8f): more undefined references to `xmlStrcmp' follow flam3/libflam3.a(flam3.o): In function `scan_for_flame_nodes': flam3.c:(.text+0x19ecd): undefined reference to `xmlFree' flam3.c:(.text+0x19ee7): undefined reference to `xmlGetProp' flam3.c:(.text+0x19f05): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19f4e): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19f9a): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19ff9): undefined reference to `xmlStrcmp' flam3.c:(.text+0x1a1ca): undefined reference to `xmlStrcmp' flam3.c:(.text+0x1a1de): undefined reference to `xmlNewDoc' flam3.c:(.text+0x1a1f3): undefined reference to `xmlCopyNode' flam3.c:(.text+0x1a204): undefined reference to `xmlDocSetRootElement' flam3.c:(.text+0x1a21c): undefined reference to `xmlStrcmp' flam3.c:(.text+0x1a261): undefined reference to `xmlStrcmp' flam3.c:(.text+0x1a334): undefined reference to `xmlStrcmp' flam3.c:(.text+0x1a379): undefined reference to `xmlStrcmp' flam3.c:(.text+0x1a3d2): undefined reference to `xmlStrcmp' flam3/libflam3.a(flam3.o):flam3.c:(.text+0x1a448): more undefined references to `xmlStrcmp' follow flam3/libflam3.a(flam3.o): In function `flam3_parse_xml2': flam3.c:(.text+0x1bda0): undefined reference to `xmlReadMemory' flam3.c:(.text+0x1bdb2): undefined reference to `xmlDocGetRootElement' flam3.c:(.text+0x1bde5): undefined reference to `xmlFreeDoc' flam3/libflam3.a(flam3-palettes.o): In function `parse_palettes': flam3-palettes.c:(.text+0x2a4): undefined reference to `xmlStrcmp' flam3-palettes.c:(.text+0x30c): undefined reference to `xmlGetProp' flam3-palettes.c:(.text+0x325): undefined reference to `xmlStrcmp' flam3-palettes.c:(.text+0x43b): undefined reference to `xmlStrcmp' flam3-palettes.c:(.text+0x456): undefined reference to `xmlStrcmp' flam3/libflam3.a(flam3-palettes.o): In function `flam3_get_palette': flam3-palettes.c:(.text+0x783): undefined reference to `xmlReadMemory' flam3-palettes.c:(.text+0x795): undefined reference to `xmlDocGetRootElement' flam3-palettes.c:(.text+0x7c1): undefined reference to `xmlFreeDoc' collect2: ld returned 1 exit status make: *** [qosmic] Error 1 Can you tell me what I need to do? If you need any other information from me in order to help me, just let me know what you need. Thanks. LocoMojo

simpl

It looks like the expat library is not in the search path for the linker. Look for a file named libexpat.so.1 or 'libexpat.so*' using locate or find. Then add the following line to qosmic.pro toward the top: LIBS += -L/path/to/directory/containing_libexpat/ where you use the path to libexpat you found above. Then run qmake, and then run make. Hopefully that will do the trick.

LocoMojo

Did what you suggested (my libexpat.so.1 is in /usr/lib) then ran qmake and make and this time the build was very short and I got a different error: In file included from src/mainwindow.cpp:23: flam3/private.h:38:20: error: config.h: No such file or directory src/mainwindow.cpp:213: warning: unused parameter 't' src/mainwindow.cpp:1091: warning: unused parameter 'column' src/mainwindow.cpp:1106: warning: unused parameter 'column' flam3/flam3.h:29: warning: 'flam3_h_id' defined but not used make: *** [.obj/mainwindow.o] Error 1 Hmm, no config.h ? What am I missing? For shits and giggles I tried the build script and I got the exact same error as earlier even though I added the line "LIBS += -L/usr/lib/" as you suggested. Any other ideas? Thanks for helping. LocoMojo

simpl

Okay, I was almost totally wrong. I think you are missing a library that is needed to build libflam3. Check that you have libxml2 installed on your system. Then type './build clean ; ./build' in the qosmic directory.

LocoMojo

Yes, I have libxml2-2.6.28 installed on my system. LocoMojo

simpl

Try this export LDFLAGS="-L/path/to/dir_containing_libxml2.so/" export LIBS="-lxml2" ./build.sh clean ; ./build.sh

simpl

If that doesn't do it, then try adding LIBS += -L/path/to/dir_containing_libxml2.so/ -lxml2 to qosmic.pro, and then do what I suggested with the 'export' lines above.

LocoMojo

The first suggestion above didn't work, but the second one did :) Thanks for that! I haven't had a chance to mess about with it just yet, I wanted to let you know that I finally got it to build. Thanks for your time and patience! Off to check out qosmic :) LocoMojo

trisz

Compilation error: ‘class QGridLayout’ has no member named ‘setLeftMargin’ ‘class QGridLayout’ has no member named ‘setTopMargin’ ‘class QGridLayout’ has no member named ‘setRightMargin’ ‘class QGridLayout’ has no member named ‘setBottomMargin’ Really has not such kind of members even in qt4.3: http://doc.trolltech.com/4.3/qgridlayout.html What is the solution? What is your qt version and your os?

simpl

You're right, it's doesn't appear anywhere in the qt docs. I've been using qt-4.3.1. I did a quick google with your error message, and there was something about these being part of an undocumented api used by designer. Maybe you could try updating qt if you haven't already.

djmdave

fwiw, qt-copy from kde's svn repo compiles qosmic just fine. this is a a very good app :)

simpl

Thank you for posting. I hadn't even considered the qt-copy patches. I've updated the web page :)

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

Other Graphic Apps:

kimagesorter
korobAn
last update date: 14 years ago

Score 5.0

Pynocchio
MStuttgart
last update date: 6 years ago

Score 6.5

PhotoKit
novesky
last update date: 12 years ago

Score 6.1

QVV Image Viewer
cade
last update date: 15 years ago

Score 5.7

webshots
salvaste
last update date: 20 years ago

Score 5.0

Limoo Image Viewer
brdn25
last update date: 11 years ago

Score 6.8



System Tags