Looking for the latest version? Download bar-0.1.4.tgz (169.6 kB)
Name Modified Size Downloads / Week Status
Totals: 10 Items   1.1 MB
README.md 2015-02-07 3.9 kB 0
bar-0.1.4.tgz 2015-02-07 169.6 kB 0
bar-0.1.3.tgz 2014-04-24 154.0 kB 0
bar-0.1.2.tgz 2014-01-04 140.1 kB 0
bar-0.1.1.tgz 2013-09-25 130.8 kB 0
bar-0.1.0.tgz 2013-06-24 112.6 kB 0
bar-0.0.4.tgz 2013-05-09 112.7 kB 0
bar-0.0.3.tgz 2013-04-01 100.9 kB 0
bar-0.0.2.tgz 2013-03-05 86.2 kB 0
bar-0.0.1.tgz 2013-01-26 72.8 kB 0

This project needs you!

This is an ambitious project, so, while I have much fun hacking at it, I simply do not have the time to do it all by myself. Everything of critical importance is in place now, so now is the time for you to consider contributing shapes and textures.

If you want to help, you might also want to take a look at the output of "make todo", it will list all the TODO comments I left in the code. A large part of this is stuff that was not necessary to create working base functionality, but it might be quite important to get fixed for a 1.0 release. And most of it is rather limited in extent. In other words, a good starting point to get a feeling for the structure of the code while actually doing productive contributions.

And, of course, I'm always interested in feedback/bug reports. So, don't be shy :-)

Getting started

Just type "make" (or "gmake") in the top directory. It will build everything and immediately run the parser on a short piece of test code. Currently, this code will render a simple 2D image (you can find other examples in exampleCode/, including a 3D example), both as ASCII art and as a TIFF file. Other notable make targets are:

  • make debug
    Run the parser with the test code under gdb. No optimizations.

  • make grind
    Run the parser with the test code under valgrind. No optimizations and no optimized new operator.

  • make performance
    Run the parser with some test code that performs a few time measurements. Optimization level -O3.

  • make clean
    I hope you will never have reason to use it, and if you do, please report the bug.


  • GNU make (Plain make under GNU/Linux systems, gmake under some others. This is a must, other makes won't do.)
  • g++
  • m4
  • libtool
  • libtiff
  • libfreetype
  • fontconfig
  • bash

  • (pandoc) This is optional to render the markdown documentation to HTML pages. If you don't have pandoc, this build step will simply be skipped.

  • I guess, one or two more things that I am not aware of (feedback appreciated :-) )

Change log

0.1.4 Multiprocessing, better texture transformations, and color for ASCII art output. A texture is now unaffected by any transformations applied to an object before the texture is applied, however, it follows the object naturally afterwards.

0.1.3 2D bezier curves and text added. I hope, I have added a good interface to make positioning of strings much easier than it is in POV-Ray. With this addition, the 2D environment finally has reached a state in which it might already be useful.

0.1.2 Checker and gradient textures, turbulence, and the infrastructure behind it. Also a number of rather technical improvements, the most visible of which is the use of markdown syntax for the documentation.

0.1.1 Added a smooth noise texture (and the noise functions it relies on, these will become important in many places), a root solver for cubic functions, and free-form, B-spline based solid objects (linear, quadratic, and cubic splines work, I hope to add quartic splines, but that requires a quartic root solver which is not available yet. Anybody up to the task?).

0.1.0 Finally, everything of critical importance is in place and the interface is object oriented. Now its time to start expanding to make it actually useful!

0.0.4 3D rendering is functional.

0.0.3 Rendering SDL code into an image is now possible. Currently, this is achieved by simply exporting the C interface to the SDL, so some slick object oriented wrappers are still on the TODO list, but, hey, it works!

0.0.2 First library code (vectors and 2D frames), a test harness for the library code (run make check), an SDL performance test, and some enhancements to the build system.

0.0.1 Initial release. Basic functionality of the scene description language implemented, no rendering functionality yet.

Source: README.md, updated 2015-02-07