[chaoscope] Command line version

  • From: Nicolas Desprez <freelists@xxxxxxxxxxxxx>
  • To: chaoscope@xxxxxxxxxxxxx
  • Date: Wed, 09 Jun 2010 08:11:48 +0100

Hello Paul, hi all,

Render-to-disk per se isn't practical with strange attractors because of their inherent chaotic nature. It'd be horribly slow, even on a solid state drive, and would probably damage any hard drive beyond repair!

However, considering how cheap RAM is nowadays and the ubiquity of 64 bits operating systems, very large renders are conceivable providing that we break the 4 billion iterations barrier.

The new version of Chaoscope (what should we call it?) is very light in term of memory allocation: The bitmap is created and saved to disk row by row instead of being fully stored in memory and OpenGL isn't used at all. To give you an idea of how big your renders can be, according to the RAM you have available, here's the number of bytes allocated per pixel for each mode:

Gas:     4
Liquid:  8
Light:  12
Plasma: 16
Solid:
With transparency or edge anti-aliasing: 8 + 8Mb per light (light buffers are 1024x1024 by default)
No transparency: 4.125 + 4.1Mb per light (one bit mask)

Say you have 2Gb of available RAM once Windows has settled itself (2Gb is the limit for 32 bits applications anyway), you can render a project in Light mode with a width and a height of:
   __________________
  /   2,147,483,648
\/    -------------   = 13,377 pixels
           12

Bearing in mind that such a large render would certainly require far more than 4 billion iterations to get a satisfactory result.

The good news is the multisampling method I've come up with only requires an extra 3 bytes per pixel regardless of the number of samples. A 13,377 x 13,377 image rendered at 66 samples per pixel would still allocate around 500Mb, but that's far better than 2Gb x 66, or 141Gb!

Going back to the command line version: GCC for Windows does not compile 64 bits executable (but does for Linux). The only compilers I am aware of that do are Visual Studio Professional (or higher) and Intel C++ compiler, neither of which are free. So I may have to resort to advertisement on the site to pay for these toys! :-)

In the meantime a win32 version will be released, since Visual Studio Express is free. I also intend to release updates more often. The new code should be far easier to maintain.

Quick answer round:

- Twitter updates: Great idea, but "chaoscope" is already taken: http://twitter.com/chaoscope . I might talk to Twitter and claim ownership! - VJ version: Yes, this has been mentioned before. This'll only work with the OpenGL animation and is a very long term feature.
- PNG transparency: Yes, but later. :-)
- CUDA: No (I have an ATI card now) but OpenCL definitely!
- John: Matrix calculation has always been done on 64 bits floating point, luckily!

Regards,

Nicolas Desprez
======================================================
The Chaoscope mailing-list
Archives : //www.freelists.org/archives/chaoscope
Admin contact : mailinglist@xxxxxxxxxxxxx
Web site : http://www.chaoscope.org
======================================================

Other related posts: