Older blog entries for pippin (starting at number 32)

Robotic Aquarell Vision

When experimenting with an approach to tonemapping I've stumbled across a nice artistic aquarell like rendering filter. This rabbit looks nice with a more basic variation

Syndicated 2007-03-01 00:03:11 from codecave.org

The State of GEGL

The presentation I did at FOSDEM this year is now available online. In multiple forms, a video (300mb OGG/Theora), a large image and a tarball containing the GEGL compatible XML file with included media assets and a ruby program for viewing it.

FOSDEM was a nice experience, the amount of participants increases every year and it is great fun to meet up with people I haven't talked to for a couple of years as well as met a bunch of new people doing amazing things using our free tools and infrastructure.

Syndicated 2007-02-26 13:03:01 from codecave.org

GEGL 0.0.12

A new GEGL release is out, grab GEGL 0.0.12 and babl 0.0.14 now.

Some highlights this release:

  • GEGL has been succesfully built on win32
  • Bindings for C#, Python and Ruby
  • Some profiling induced performence enhancement

Read full announcement

Syndicated 2007-02-18 23:19:24 from codecave.org

GEGL 0.0.10 Released

A new GEGL release is out, grab GEGL 0.0.10 and babl 0.0.12 now.

Some highlights this release:

  • API documentation
  • Internal caches for rendering (internal floating point projection)
  • API for iterative rendering
  • API for querying node connections.
  • improved hit detection (still only bounding boxes)
  • performance enhancements to frequently used code paths.
  • improved relative path handling in test app
full announcement.-

Syndicated 2007-01-28 23:34:28 from codecave.org

Ruby meets GEGL

GEGL is written in C, but I think and hope that interesting applications will surface written in higher level languages. I am having fun combining GEGL Ruby, GTK+ and cairo in a test application that focuses entirely on manipulating objects in a zoomable canvas on the canvas that uses pie menus. The test application and the rest of the code for the user interface resides in the nicely forming rgegl extension for Ruby.


4mb GIF screen capture

It is nice to code in Ruby again, it seems like I can get much more done in one hour with ruby than a whole evening with C.

Syndicated 2007-01-25 23:42:50 from codecave.org

Public GEGL API Reference

Work is under way on documenting the GEGL API. The core of the API is rather small (less than 15 entry points for the core of creating and processing image compositions, and the rest is syntactic sugar or state queries).

Please also look through this API with a critical eye and report thoughts on the API back to the GEGL mailing-list. Improvements to the text itself are best sent as a patch against gegl.h in subversion.

The document is transformed from .h into .html by a ~500 line HTML/CSS/ruby/regexp contraption.

The rest of the web on gegl.org is still the one from the previous release, when the next release is done the API Reference will also be linked from the front page.

Syndicated 2007-01-25 12:06:36 from codecave.org

GEGL 0.0.4 released

The first GEGL tarball, of version 0.0.4, has just been released from the 23rd Chaos Communication Congress in Berlin.

Full release announcement follows:

What is GEGL?

GEGL is a graph based image processing framework offering non-destructive image processing and compositing on large images. GEGL is suitable for projects ranging from small one-off projects to interactive applications.

GEGL is built on top of the libraries glib and babl:

  • GLib is the low-level core library, also forming the basis of GTK+ and GNOME. It provides data structure handling for C, portability wrappers, plug-in handling and object system used for object oriented structuring of the framework.
  • babl is a library for dynamically handling pixel formats and managing conversions between them.

What's new in 0.0.4?

This is the first public release of GEGL.

  • 8bit, 16bit integer and 32bit floating point, RGB, CIE Lab, YCbCr and naive CMYK output.
  • Extendable through plug-ins.
  • XML, C and Python interfaces.
  • Memory efficient evaluation of sub-regions.
  • Tiled, sparse, pyramidal and larger than RAM buffers.
  • Rich core set of processing operations
    • PNG, JPEG, SVG, EXR, RAW and other image sources.
    • Arithmetic operations, porter duff compositing operations, SVG blend modes, other blend modes, apply mask.
      • Gaussian blur.
      • Basic color correction tools.
      • Most processing done with High Dynamic Range routines.
      • Text layouting using pango

The public API is now in a state where extended testing is desirable. The public API is the functions exposed in gegl.h which most applications using GEGL will interface with, either directly or through bindings for a dynamic language. The changes needed as usage patterns emerge are expected to be small.

Although adding new operations now is easy the API used is still considered highly experimental. The file format used for testing is not stable either and is expected to continue maturing.

In the release there is also some sample code exercising the framework, in proportion to the amount of work put into the library almost no time has yet been invested in improving the usability of this GUI.

Where to get GEGL

GEGL, babl and glib can be fetched from:

ftp://ftp.gimp.org/pub/babl/0.0/babl-0.0.8.tar.bz2
ftp://ftp.gimp.org/pub/gegl/0.0/gegl-0.0.4.tar.bz2 ftp://ftp.gimp.org/pub/glib/2.12/glib-2.12.6.tar.bz2

The integrity of the tarballs can be verified with:

$ sha1sum *.bz2
8ba35c6eae58fd1f89e2ba1b09f3927d93dec57e  babl-0.0.8.tar.bz2
3476715723d58fd703a72c93c4f82945e7fb23a2  gegl-0.0.4.tar.bz2
30cf64bc5c93d5fbba23ea00fb9270d29fb81f8d  glib-2.12.6.tar.bz2

Where to get more information about GEGL

Information about GEGL can be found in the GEGL documentation, the README is a text only version of the HTML documentation generated during a build. This is also the contents of http://www.gegl.org/.

/Øyvind Kolås @23c3

Syndicated 2006-12-30 00:04:10 from codecave.org

Improved Aurora Borealis

I've added a basic local contrast stretching/tonemapping algorithm to the experimental regions of the GEGL codebase. I reused other ops for most of the functionality needed and coded it as a meta-op/macro op/graph op, with only a single specialized op to do the actual remapping. tried reusing as much code as possible. Since then I've been trying to make graphviz based visualization of GEGLs state (the nodes, graphs and properties). This allows to see how the tonemapper works, as well as closer inspection of the samples in GEGL gallery.

Putting together the pieces used to construct the contrast stretcher, would not be possible in a tree view such as the one used by the GEGL editor nor in OpenRaster using the hierarchical stacks, since it needs a node that has three inputs and one output to work properly. (Thus such macros/scripts should be DAGs like in the SVG Filter specification if OpenRaster is going to support this concept.

The tonemapper isn't good enough to properly with some of the OpenEXR test images (ugly sample). Even just adding a fader to allow controlling the amount will probably improve this situation slightly.

(Photograph of Aurora Borealis over Gjøvik by EJH)

Syndicated 2006-12-27 22:45:03 from codecave.org

GEGL Earth

I like large images, sometimes I create my own by stitching them together like the ones in my panorama galley. The image I'm using to stress GEGL at the moment is stitched by NASA instead, and is the hugest image file I've got, the image measures 86400x43200px (~11G uncompressed 24bpp)

Two new features were needed in GEGL before I could try to load such a large (larger than RAM) image. Both of them planned since I was experimenting with horizon as a protoype running on my PDA in the beginning of this year. An tiled image pyramid (mipmap) to enable display on screen without needing to access all image data combined with a swapfile backend for the tile system.

Both the swapping and the logic for updating the pyramid needs some further work, swap to gain some more features, the pyramid to be speedier when regions of the backing data changes.

If I am able to find the time to do what I want I should be able to do a GEGL composited, editable presentation about GEGL in the style of the presentation I gave at LGM in Lyon last year for FOSDEM next year.

Syndicated 2006-12-19 17:49:53 from codecave.org

23 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!