• Category Archives JWildfire
  • JWildfire for macOS is now on the AppStore!

    I worked the last four weeks on a dedicated macOS build which can be distributed
    through the App Store.
    Hopefully, this will make it much easier to install updates for Mac users and
    oush the macOS-version to a higher level.

    This step really needed a lot of tweaking, because all the packaging and code-signing
    steps must be performed manually (this is because JWildfire is not made using Xcode,
    which simplifies such stuff a lot.)
    Also, it was necessary to replace almost any file-dialog with a native one.
    Only this seems (currently) to make it possible to exit the macOS-sandbox
    under macOS Catalina (otherwise you would get a “operation not permitted” or
    similar error when trying to write a file.)
    Those dialogs also look better, but lack some features of the JWildfire-dialogs.

    So, I’m really glad, that it all works now! 🙂

    To support the future of this build and to make it possible to extend tests on the
    Mac platform, I decided to make the app not free. Instead, you have to pay about
    10 bucks (once), all future updates will be free.
    You can still use the completely free (*.jar-based) build (or build by yourself),
    of course. But this will require more manual steps to install the software.

    KNOWN BUG:
    If you once open FileDialog to select a drawer (and not a file), all further
    dialogs will not allow you to select a single file.
    (After the a restart of the app the problem is fixed).
    There is also a permanent workound (which will be included in the next update):

    Edit the file /Applications/JWildfire.app/Contents/app/JWildfire.cfg, e.g. by
    opening a terminal and entering:
    cd /Applications/JWildfire.app/Contents/app
    sudo vi JWildfire.cfg

    Then add the line “-Dapple.awt.fileDialogForDirectories=false” after the line “-Xmx4096m”,
    so that you have the section in the file:
    [JavaOptions]
    -Xmx4096m
    -Dapple.awt.fileDialogForDirectories=false
    Save the file, and after restarting JWildfire, the problem will be fixed.

    Here is the link to the App Store: https://apps.apple.com/de/app/jwildfire/id1530646485

    Have fun!


  • JWildfire 6.00 release: improved animation-capabilities and better performance

    After three months of work, I’m glad to release JWildfire V6.00 as another major update.

    This time, the animation-features where greatly improved:

    • animation playback and -editing in the main editor is much smoother now, in general the editing gives much for “fluid” feeling
    • the main editor now supports automatic creation of animation keyframes: you move to a certain frame, change a property, and JWildfire automatically creates a smooth motion curve to interpolate between the values
    • you may now create mp4-files directly from within JWildfire (without using any other tools). You may even create batches of mp4-files.
    • support for Intel’s OIDN denoiser as a powerful tool to cut down render times and improve image quality (works simular to NVidia’s OptiX, but does not requiere a GPU from NVidia)

    But, there are also numerous new non-animation-related improvements, e. g.:

    • new “RunRandomScript”-random-flame-generator which executes randomly selected scripts from your script-library to generate random flames
    • new dark “JWildfire”-theme (based on Nimbus) which is now the default
    • easy revert-to-default-feature for most parameters: just double-click at the label in front of an field to revert the current-value to the default value
    • new function (at the “Anti-Aliasing / Filter”-tab) to apply an AI-Post-Denoiser to a single image (e. g. a previously rendered fractal)
    • numeric fields now also react to inputs of the mousewheel
    • a lot of new variations

    Thanks to Brad Stefanov, Jesus Sosa, Rick Sidwell and Whittaker Courtney to their valuable contributions!

    Hint for Mac users:

    For some reason, macOS Catalina may say that the JWildfire.app is “corrupted”. Workaround: you can download the Windows/Linux-distribution and unzip it. Go into the lib-subfolder and launch the j-wildfire.jar. (When you do not know how to do this, search Google for “macos launch jar”). Good luck! (I will try to fix this as soon as I find the time.)

    Complete list of changes:
    – dramatic improvement of responsiveness to changes in the UI (sliders, number fields, …)
    – faster Undo and Randomizers as well
    – more “fluid” preview
    – automatic creation and updating of keyframes when changing flame-parameters at different frame-numbers, creating
    of flame-animations has never been easier
    – there are the following functions in the UI to deal with keyframes:
    – jump to previous keyframe (takes all keyframes of all motions curves into account and jumps to the closest keyframe)
    – jump to next keyframe (same as before, but in the opposite direction)
    – delete current keyframe (affects all motion curves which contain a corresponding keyframe)
    – duplicate current keyframe (affects all motion curves which contain a corresponding keyframe)
    – reset all motion curves/remove all keyframes
    – you may now create mp4-files directly from within JWildfire (without using any other tools). This feature is available
    in the following places:
    – main-editor (just use the “Render image/movie”-button as usual, but choose the extension “.mp4” as output.
    In the file-dialog you may select “Supported movie files” in order to display only *.mp4-files.)
    – Easy-Movie-Maker (new “MP4”-output-type)
    – Batch renderer (after adding a file you need to set the value “Render animation” to 1 for each file you want to render as animation)
    so you can render small animations very quickly and without involving any other software
    – new option “tina.keep_temp_mp4_frames” in the Preferences to specify if you want to keep the individual frames (and must delete them manually)
    – easy revert-to-default-feature for most parameters: just double-click at the label in front of an field to revert the
    current-value to the default value. To see if a field supprots this feature, just hover with the mouse of the label.
    When the cursor turn into a hand-symbol, the field supports the feature. This function also respects motion-curves and can be undone.
    – new “RunRandomScript”-random-flame-generator which executes randomly selected scripts from your script-library to generate random flames.
    This makes the scripting-feature more visible to users who not already know much about it, and also creates a lot of beautiful new flames.
    The random generator also adds symmetry and weight-fields, accordingly to your selection, on top of the script-generated flames,
    but preserves the script-generated-colors (when any).
    You can use the options tinaRandGenRunRandomScriptIncludedScripts and tinaRandGenRunRandomScriptExcludedScripts in the Preferences to
    include or exclude specific scripts (or both).
    – new dark “JWildfire”-theme (based on Nimbus) which is now the default
    – support for Intel’s OIDN denoiser as a powerful tool to cut down render times and improve image quality (works simular to NVidia’s OptiX,
    but does not requiere a GPU from NVidia)
    Please consult the comprehensive documentation inside the software (“Help -> Supported AI-Post-Denoiser -> Intel’s OIDN Denoiser”) for more information.
    – new function (at the “Anti-Aliasing / Filter”-tab) to apply an AI-Post-Denoiser to a single image (e. g. a previously rendered fractal).
    When using this function, the currently active AI-Post-Denoiser-settings are applied.
    – moved the old webspace to a secured site:
    – https://jwildfire.overwhale.com is the JWildfire site
    – https://jwildfire-forum.overwhale.com is the JWildfire-forum
    – (https://mb3d.overwhale.com is the Mandelbulb3D site)
    – (https://flamelet.overwhale.com is the Flamelet site)
    – https://overwhale.com is my main site
    – made it more visible, when a motion curve/key-frame is associated with a certain flame-parameter
    – Batch-rendering now also supports AI-Post-Denoiser together with GPU-rendering (FACLRender)
    – GPU-rendering in the GPU-render-window also respects the AI-Post-Denoiser from the imported flame
    – added a new option to turn the denoiser off in order to be able to see the raw result from the GPU renderer
    – changed some default settings in regard to flame-animations
    – numeric fields now also react to inputs of the mousewheel
    – added function to reset all motion curves
    – re-implemented animation-playback in the main editor
    – new settings in the Preferences for animation preview in the main editor: tinaRenderAnimPreviewQuality (render quality) and tinaRenderAnimPreviewSize (size of preview)
    – new setting in the Preferences for default state of the animation-controls in the main editor: tinaDefaultAnimationControlsEnabled (per default: true)
    – renamed the “Misc”-tab into “Randomize”, moved the “Randomize weighting-fields”-button to this tab, added also a hint-panel
    – added motion curves for the following flame-parameters: balancingRed/Green/Blue, lowDensityBrightness and foregroundOpacity
    – added new property “tinaDefaultFrameCount” to the Preferences, here you can change the default number of frames for a flame-animation,
    created in the main editor
    – the Quilt-Renderer does ignore the setting of the AI-Post-Denoiser (e.g. OptiX). The current way to denoise such images is to manually denoise the final image
    – new variations:
    -glitchy1 by Brad Stefanov, Rick Sidwell, dark-beam and bezo97
    -pixel_flow by bezo97
    -vortex,
    -dc_vortex,
    -dc_warping by Jesus Sosa
    -post_trig,
    -post_log_tile2 by Whittaker Courtney
    – 20 new variations “SDF” for 3D blur objects, by Jesus Sosa
    -box3D
    -bbox3D
    -rbox3D
    -rhombus3D
    -torus3D
    -ellipsoid3D
    -hexprism3D
    -cylinder3D
    -octogonprism3D
    -ocylinder3D
    -pyramid3D
    -octahedron3D
    -solidangle3D
    -triprism3D
    -cappedtorus3D
    -cappedcone3D
    -ocappedcone3D
    -cone3D
    -oroundcone3D
    -capsule3D
    – added a mode parameter to the elliptic variation to enable compatibility with the apo plugin; see http://jwildfire.org/forum/viewtopic.php?f=22&t=2681
    Also added a higher accuracy mode as described by Claude Heiland-Allen.
    All three modes will look the same for most flames, but the differences are important in some specialized cases, by Rick Sidwell
    – add polarplot variations to solid random flame generator, by Rick Sidwell
    – fixed a bug in blur_zoom, by Rick Sidwell
    – fix shift_z in sphere_nja, by Rick Sidwell
    – fixed a bug in onion2, by Brad Stefanov
    – fixes to package js.colordomain & more params to new variation vortex, fixes to package js.colordomain, more params to new variation vortex, by Jesus Sosa
    – removed the (barely understood) “Mirror translations”-button at the Affine-transforms-tab
    – fixed a bug preventing changing parameters “Blur fade” and “Blur falloff” on the “DOF/Bokeh -> Post blur” -tab
    – fixed a bug regarding calculating the wrong pixels-per-unit-setting when importing a flame from the thumbnail-ribbon
    – fixed bug that the Quilt Renderer did not delete the temporary segments after merging thme into the final images
    – fixed a bug causing the GPU-renderer called twice the same time when changing resolution- or quality-profile in the GPU-renderer-window

    Just click the “Random flames” button to start playing around and have fun  🙂


  • JWildfire 5.60 release: with support for OptiX denoiser

    Just released JWildfire V5.60 as another major update.

    This time, adding support for NVidia’s OptiX denoiser as a powerful tool to cut down render times and improve image quality.

    The OptiX denoiser, developed by NVidia, is included in most of the common 3D rendering software like Arnold, Blender, Lightwave.
    I was enjoying it for a longer time, but did not really think about an integration into JWildfire, because such an integrationg (GPU rendering and Java programs) is always somewhat weak or unstable.
    
    But then, user [Phaser Rave] at the JWildfire forum, introduced us to the a command-line version of the denoiser, made by Declan Russell. I was immediately hooked and created some "dirty" integration of the tool into the render-flow to play around. I was really excited and the results where amazing, so I kept stuck to the idea and improved the  implementation.
    
    Now, it is loosely coupled and can not crash your JWildfire process. You will only see the options, when your system can run it. So, it will not confuse users who can not make use of it, either. All others will love it ;-) 
    And, by using the way of utilizing a command-line-tool you are even able to denoise your already rendered images!
    
    Please consult the comprehensive documentation inside the software ("Help -> OptiX denoiser") for more information.

    There also a lot of other useful additons, contributed by Rick Sidwell, Jesus Sosa, Whittaker Courtney and others – most in the form of new variations – thanks a lot for your efforts!

    Complete list of changes:

    – support for NVidia’s NVidia’s OptiX denoiser as a powerful tool to cut down render times and improve image quality.
    Please consult the comprehensive documentation inside the software (“Help -> OptiX denoiser”) for more information.
    – new commandline-tool to create and render random flames.
    Example: java -cp j-wildfire-5.60/lib/j-wildfire.jar org.jwildfire.cli.CreateRandomFlame -w 1200 -h 675 -q 80
    – new variations:
    -julia_outside by Whittaker Courtney
    -polarplot3d_wf by Rick Sidwell
    -polarplot2d_wf (Like yplot2d_wf, but uses polar coordinates. Fifteen presets of common polar curves) by Rick Sidwell
    -combimirror by Thomas Michels and Brad Stefanov
    -gingerbread_man,
    -hopalong,
    -gumowski_mira,
    -threeply,
    -triangle,
    -crop_box, post_crop_box,
    -crop_polygon, post_crop_polygon,
    -crop_cross, post_crop_cross,
    -crop_rhombus, post_crop_rhombus,
    -crop_stars,post_crop_stars,
    -crop_trapezoid,post_crop_trapezoid,
    -crop_triangle, post_crop_triangle,
    -crop_vesica,post_crop_vesica,
    -crop_x,post_crop_x,
    -pre_zsymmetry,
    -post_zsymetry,
    -pre_c_var,
    -post_c_var, all created by Jesus Sosa
    – new jitter-option for weighting-fields: Adds noise after transforms, so it works well with blurs as well as normal transforms, by Rick Sidwell
    – some new presets to yplot2d_wf variation, by Rick Sidwell
    – FIXED: added missing parameter colormap_filename for metaballs3d_f variation, by Rick Sidwell
    – FIXED: a bug regarding colormaps in isosfplot_wf, by Rick Sidwell
    – FIXED: a bug in the mask variation, by Rick Sidwell
    – FIXED: made js.glsl classes serializable, fixing a bug where dancing flame projects could not be saved, by Rick Sidwell
    – updated variation credits, by Rick Sidwell

    Now, just click the “Random flames” button (or new “Random”-button at the gradient-tab ) to start playing around and have fun  🙂


  • MB3D1.99.32 release with new ZBuf16Bit-module

    Just released MB3D 1.99.32. This version comes with a new module called “ZBuf16Bit” which allows you to create high-quality depth-maps/z-buffers.

    16Bit ZBuffer

    Those maps can be used in MB3D itself, of course – but are also suited to create very interesting effects in other 3D-packages like Octane Render (e.g. as displacement maps).

    Some hints:

    • first render your fractal, then hit the “Refresh”-button in the ZBuf16Bit-window to display a preview of the
      depth-maps
    • press the “guess params”-button if you see nothing or the image is off
    • the preview is only 8Bit, while the heightmap internally is computed using 16Bit
    • adjust the depth-map using the “Z offset”, “Z scale” and “Invert ZBuffer” controls
    • antialiasing (by changing the view-resolution) of the 16Bit depth-maps is supported
    • technical note: because the Delphi-PNG’component is (very) buggy, it does not support 16bit images.
      So saving of depth-maps uses a workaround to get out a 16bit image:
      • Mandelbulb3D.exe does only write a PGM-file (which is a valid 16Bit gray image, but is only supported
        by a few programs)
      • a java-based PGM-to-PNG-converter is invoked under the hood.
        So, you will need a valid java installation to get out a 16Bit PNG-image.
        But, it is not mandatory, you can also convert the PGM-images manually, e.g. using an online-converter.
        (The converter is inside the file PNG16Util-1.0-SNAPSHOT.jar, and is not some dubious 3rd-party-library,
        but written by myself, so you can also see the sourcecode at GitHub.)

    See the file CHANGES.txt for a list of changes.

    Have fun!


  • JWildfire 5.50 release: introducing gradient-curve-editor as new artistic tool

    Just released JWildfire V5.50 as another major update.

    This time, introducing a new color-editing-function that makes it easier to control the final result: the color-curve-editor. It allows a very interactive editing of the gradient and the flame at the same time. Additionally, it allows more direct control over modifying the colors of a gradient, making it much easier to create “dramatic” effects.

    (Internally, each gradient now consist both of the “classic” part of the gradient and three new curves: hue, saturation and luminosity. Those curves belong to the flames, and are also stored within the flame-files.)

     

    A BIG thanks to Jesus, Rick, Brad and Michael (in no particular order) for their valuable contributions!

     

    Complete list of changes:

    - New "Curve Editor" for gradients at the gradient tab. This gives much more control over the final result because it allows a very interactive editing
    of the gradient and the flame at the same time. Additionally, it allows more direct control over modifying the colors of a gradient,
    making it much easier to create "dramatic" effects.

    Internally, each gradient now consist both of the "classic" part of the gradient and three new curves: hue, saturation and luminosity.
    Those curves belong to the flames, and are also stored within the flame-files.

    When loading an old flame without those curves, or assigning a "classic" gradient to a flame, the color curves are approximated.
    This usually is only a very raw approximation, but this is absolutely intended. To reach a very accurate approximation, it would require
    to have a lot of curve-points, which would make the curve very hard to edit.

    So, there is no exact synchronisation between the gradient and the colors curves, in order to not break existing flames and concepts.
    Instead, it is meant as powerful additional tool, whioch is useful in very many cases, but might not be useful in each case.

    Only when you start to edit one of the curves, the gradient is synchronized to shape of the curves. When you save and re-load a flame
    you can continue the editing of the curves.

    Each curve has a toolbar with little buttons to help with editing:
    - open a modal dialog for editing an enlarged version of a particular curve
    - create ramp-shaped curve
    - create line-shaped curve at the bottom (constant zero intensity)
    - create line-shaped curve at the middle (constant halve intensity)
    - mirror the curve at the vertical axis
    - mirror the curve at the horizontal axis (e.g., to turn a constant line of zero intensity into a line with maximum intensity)

    Two new random-gradient-generators directly support the concept of color-curves. I. e., they create random color-curves instead of random gradients.
    All existing random-gradient-generators works as before. I.e., they create only random gradients, while the color-curves are approximated from
    the gradients.

    - new "Uneven curves"-random-gradient-generator, which generated both a color-curve and a gradient (derived from this color-curve)

    - new "Uniform curves"-random-gradient-generator, which generated both a color-curve and a gradient (derived from this color-curve)

    - made "Uneven curves" the new default random-gradient-generator

    - New coloring type (by Rick Sidwell):
    CYCLIC shifts the gradient index right by the amount specified by Speed,
    wrapping as needed to cycle through gradient colors. It doesn't converge
    to a color when iterated, so some other transform needs to use DIFFUSION
    to get a stable color that CYCLIC can use as a starting point.
    CYCLIC is especially useful for coloring tilings.

    - function to create a simular gradient (using the currently loaded gradient as reference)

    - new "EDisc"-random-flame-generator

    - new "Save Gradient"-button at the gradient-tab

    - new "Random Gradient"-button direct at the gradient-tab

    - new variations (no particular order):
    - octapol (by xyrus02)
    - sinusgrid (by xyrus02)
    - csin (by zephyrtronium)
    by Jesus Sosa
    - cut_tileillusion
    - dc_fractcolor
    - cut_fractal
    - cut_zigzag
    - cut_x
    - cut_spiral
    - cut_spiralcb
    - joukowski
    - jac_elk
    - c_symmetry
    - cut_celtic
    - cut_triskel
    - cut_vasarely
    - cut_web
    - cut_spots
    - cut_btruchet
    - cut_c
    - c_var
    - cut_magfield
    - cut_btree
    - cut_2ewangtile
    - cut_alientext
    - cut_apollonian
    - cut_booleans
    - cut_bricks
    - cut_cirdes
    - cut_fingerprint
    - cut_fun
    - cut_glypho
    - cut_hexdots
    - cut_hextruchetflow
    - cut_jigsaw
    - cut_kaleido
    - cut_metaballs
    - cut_pattern
    - cut_randomtile
    - cut_rgrid
    - cut_shapes
    - cut_sincos
    - cut_snowflake
    - cut_sqcir
    - cut_sqsplits
    - cut_swarp
    - cut_triantess
    - cut_truchet
    - cut_truchetweaving
    - cut_tstruchet
    - cut_wood
    - cut_yuebing
    - dc_booleans
    - dc_butterflies
    - dc_spacefold
    - f_complex
    - msTruchet
    by Brad Stefanov
    - exp_multi (by Whittaker Courtney)
    - parallel
    - shredded (by Brad Stefanov and Rick Sidwell)
    - post_crosscrop (by Whittaker Courtney)

    - added "Lumiere Scripts" by Michael Bourne (a collection of 22 scripts) as built-in scripts
    - added "The Yugen Scripts" by Michael Bourne (a collection of 17 scripts) as built-in scripts
    - added "Keep 'Em Separated and Framed Script" by Brad Stefanov as built-in scripts
    - added "Minkowscope Painting Script" by Brad Stefanov as built-in scripts

    - fixed a nasty bug which could cause the final image to contain black stripes

    - Making a variaton a pre or post now works as intended

    - added standard shortcuts to Undo/Redo (<Strg>+Z/Y)

    - slighlty increased variation cost threshold to increase diversity in random flames

    - small optimization of the space at WField-tab

    - new README-file with hints for Linux-users

    - Additional presets added to isosfplot3d_wf variation

    - Two modes added to jubiQ variation

    - New option to specify color for DiminishZ; this is useful when using DiminishZ with a colored background

    - New coloring types descriptions in the Fractal Flames: Help window

    - New Density option for layers (by Rick Sidwell).
    Layer density allows fading some layers with respect to others to better
    balance the overall flame. It is complimentary to Weight, which controls
    the intensity of the layer to balance its brightness, but can only make
    it darker, not less dense.

    - New layer Extract button extracts the selected layer to a new flame in the editor

    - New ZBuffer controls (by Rick Sidwell)
    - ZBuffer bias makes the background appear closer. This is sometimes needed when using the ZBuffer
    for 3D photos in Facebook, which creates white splotches if the background is too far away.
    - ZBuffer filename option to select between traditional zbuf_name and name_depth (what Facebook requires).

    - New Camera tab Bank control to rotate flame around the Y axis. This rotation is normally called Roll,
    but that name is already used; Bank is a synonym. It works in conjunction with Pitch (rotate around X
    axis) and Yaw (rotate around Z axis).

    - New FastNoiseCreator in Image Processing to create images containing various types of noise

    - Change Easy movie maker FADE function to better fade between flames. A compatibility option allows using the old method.

    - Tooltips added to many controls

    - Rick Sidwell: Various fixes, including one that prevented the Mesh generator from working.
    1. Added some null pointer checks to AnimationService.java
    2. Removed print statement from Variation.java (only noticable if
    started from the command line for debugging)
    3. Fixed BokehOptionsBuggon tooltip text
    4. Corrected class for PerlinNoiseCreator so Transformation expression
    can be edited
    5. Camera distance field now allows negative distances.
    6. Motion curve for Fade to white now works.
    7. Edit gradient now puts focus on gradient so cursor keys work.
    8. Make a copy of a thumbnail flame before appending it as a layer to avoid confusing situations when editing one flame changes another.

     

    Now, just click the “Random flames” button (or new “Random”-button at the gradient-tab ) to start playing around and have fun  🙂


  • MB3D1.99.12 release with update to BulbTracer2

    Just released MB3D 1.99.12 as major update.

    This version comes with a big update to the new mesh generator (BTracer2):
    – even more speed
    – true vertex colors (when using PLY as export format)
    – using less memory, allowing to generate meshes with higher resolution
    In short: make it even more fun!

    See the included image “BulbTracer2r12.jpg” for a visual overview of the changes.

    See the file CHANGES.txt for a list of changes.

    When you have questions, feel free to contact me at thargor6@googlemail.com

    Cheers!

    P.S.: Here is an example-image, created BTracer2 and Lightwave 2019: https://www.deviantart.com/thargor6/art/Lagoon-815688330


  • MB3D1.99.7 release with BulbTracer2

    Just released MB3D 1.99.7 as major update.

    It comes with BTracer2, an major update to the mesh-generator.
    In fact, the module was rewritten, in order to achieve the following goals:
    – get much better results
    – to be much faster
    – (optionally) generate color-information
    – make it simpler to use
    In short: make it fun!

    See the included image “BulbTracer2.jpg” for a visual overview of the changes and have fun!


    When you have questions, feel free to contact me at thargor6@googlemail.com

    Cheers!

    P.S.: Here is an example-image, created BTracer2 and Lightwave 2019: https://www.deviantart.com/thargor6/art/Lagoon-815688330