Thanks to guagapunyaimel, using whole flames as fillers for frameworks is now public knowledge! My interpretation of the general method:
1. Reset the original flame weights but compensate using xaos.
2. Make all transforms invisible.
3. ‘Take up’ the flame again by adding a linear transform – if it doesn’t look as it did, it’s not suitable for this technique.
4. Link a container transform exclusively from the linear.
5. Feed the framework transform(s) from the container/each other but let them only feed back to the linear/each other.
It’s not the simplest of techniques and can’t be accomplished using the built-in link method alone. The following is what I dub the ‘xaos flow diagram’ – note particularly the one/two-way arrows.
I have at least managed to script it for a spherical-eyefish framework. Once that’s in place, it’s relatively simple to change the container and the framework
Not all base styles/frameworks work equally well, but I’ve had a few interesting results:
After finally unlocking some of glynnia’s secrets last month, I find myself revisiting that esteemed plugin with fresh enthusiasm and finding some absorbing new leads.
There are a good few variations in Apophysis that lend themselves to texturing, but bubblewrap (bwraps7) is one that I’ve found particularly rewarding. Taking as a starter flame a perfectly conventional splits-based fractal (built on the same principles as guagapunyaimel‘s splits-crop combo, but using spherical/post-crop as the base:
I added some pre-boarders to the base (filling) transform then linked this to a bwraps7 transform. Three completely different results changing only colour/gradient and the bwraps7 variables:
A big heads-up to guagapunyaimel on deviantART for pointing out this combo. Whilst initially appearing similar to rings2, there are plenty of new avenues to explore.
Now that the new issue of 7X, version 15, offers integrated rendering support for Chaotica, I expect more artists will want to give it a whirl. Do so – in most cases, you won’t be disappointed! As there’s no dialogue comparable to those of the internal renderer and flam3, I feel a quick guide might be helpful to those who haven’t yet figured out a workflow.
Initially, I’ll highlight some important differences:
- There is no ‘Density/Quality’ setting – Chaotica keeps rendering until you stop it.
- Render dimensions are set within the Image size tab on the Adjustment dialogue.
- Filter radius is redundant.
- Oversample works in the traditional manner in that both RAM and render time are multiplied by the value.
- Chaotica automatically uses all cores.
- Dimensions limited to 1920 px on the long side.
The following gives step-by-step instructions from obtaining the software to rendering:
- Download and install Apophysis 7X.15.
- Download chaotica_0.3_win_x86.zip and unzip the contents to your preferred location – it creates a subfolder chaotica_0.3_win_x86.
- In the Environment tab within the Apo settings, locate the field labelled ‘Chaotica’ and use the corresponding folder icon to open a dialogue for navigating to your chaotica.exe file.
- Load your flame within Apo as usual.
- Check its variation use against Chaotica’s supported list (both in the readme.txt and the variation_compatibility.xml files) and copy any plugin .dll files not listed into Chaotica’s plugins subfolder.
- Alternatively, duplicate your Apo plugins in Chaotica’s plugins folder, removing any for which native support is provided. When the program launches, an initialisation procedure takes place: any plugins failing to load are reported in the command (DOS-style) window and in the plugin_log.txt file. These should be removed.
- Back in Apo, on the Image size tab on the Adjustment dialogue, set desired dimensions (checking ‘Maintain aspect ratio’ may be useful), ensure that ‘Resize main window’ is un-checked then click ‘Apply’.
- From the menu, File, Export to Chaotica…
- Note that the ellipsis is misleading. Normally, it signifies a dialogue, but here we just go straight in.
- As stated, Chaotica automatically uses all cores. It also helpfully defaults the process priority to ‘BelowNormal’. However, personal preference suggests a process priority of ‘Low’ to be optimal if other acitivities are to occur simultaneously. Set this via the Task Manager, on the Processes tab.
- Check render progress periodically, using the ‘Update image’ button. When satisfied, ‘Save image’ then quit.
- Chaotica launches 2 windows: a command (DOS-style) window; and the main program window.
- Plugin initialisation errors may cause immediate termination, or may show in the command window.
- Doesn’t yet handle direct colouring.
- Expect some flames to render completely differently from how they look in Apo.
- Oversample is not currently exported from Apo – see section below.
- Due to the way in which it handles oversample, Chaotica may not be the best choice for some particularly jagged flames. Experience will tell here. My own preference: if it needs oversample > 1, either render large and step-reduce or use the internal renderer or flam3 (if possible).
- If you really wish to render using oversample >1, create an empty .flame file in your Chaotica folder (call it, say, render.flame).
- Open the file with a text editor.
- Set up your flame in Apo as described above, but don’t export it.
- Copy and paste into your render.flame.
- Locate the oversample attribute in the tag – it should say oversample=”1″.
- Change the value as desired and save.
- Now just drag-and-drop render.flame onto chaotica.exe and the rendering begins.
I could see that this would be a very versatile variation, but hadn’t given it a try until today. Jumping in with default values, I saw that a Koch triangle was begging to be created – just add a linear, scale down to 1/3 and place using polar coordinates and triangle rotation. The origin r came, admittedly, through trial-and-error. Then switch to World Pivot, duplicate and rotate through 120 then repeat. A few extra transforms added for interest and we have:
Playing with variables gets interesting – first, set nb_ratioHole to 1:
Now set nb_circumCircle to 1:
Then set nb_numStripes to 1:
Much more to come, I think.