Archive for October, 2007

Type and Mipmaps

Sunday, October 28th, 2007

A lot of times people tend to forget about the importance of type support. Some have poor font rendering, but most don’t support things like kerning or ligatures. Not supporting kerning is just unacceptable. We made sure we have great type support in E15, and we do. E15 can render TrueType, PostScript and OpenType, all with kerning, ligatures and for OpenType, unicode support. The font rendering is also nice thanks to CoreText and Quartz. Here are some screen captures.

While adding support to text, we discovered that our mipmaps weren’t working. We noticed a lot of scintillation effects from the texts drawn in the environment. We are using NPOT textures, and after a couple days of going back and forth about whether NPOT mipmaps were possible or not, we finally figured it all out. As long as ARB_texture_non_power_of_two extension is supported, NPOT mipmaps will work just like POT. The trick is to use GL_TEXTURE_2D and treat NPOT just like POT.The other problem which hopefully is fixed with the official release of Leopard is that our ATI X1900 does not support hardware mipmap generation. Instead, we have to call gluBuild2DMipmaps(). The NVIDIA 7300 however does support it.

Curves from Wikipedia

Monday, October 8th, 2007

We’ve been using E15 to experiment with different layouts of web content in a 3D environment. The Python scripting interface makes it possible for us to have access to a wide variety of datasets using existing libraries to grab content from blogs, Flickr, Facebook, Wikipedia, and just about any other site with an API or RSS feed. What to do with the web content is a much more challenging problem than actually acquiring the content.

In some early sketches of web content layouts, I had arranged webpages around the perimeter of a circle. While searching for more interesting equations to use for laying out pages, I found an awesome Wikipedia page called List of Curves with over 50 different types of mathematical curves. The problem with this page, however, is that it has no pictures of the curves. I want to see what all the curves look like, but I’m not about to click through every single page, one at a time.

So, I wrote a Python script that uses the MediaWiki API for Wikipedia to find all the articles linked from the List of Curves article, finds the images linked from those articles, and finally renders all the images in E15 with the relevant article titles:

Curves from Wikipedia rendered in E15

If you’re curious about how these pages were laid out, I used a rose curve with 8 petals — pictures of this curve are in the middle of the screenshot below:

Close up of rose curve

One more screenshot:

Pictures of spirals and other curves, in E15

I’ll be working with the same data more this week, so check back soon for more images, and probably a video or two!

What is oGFx?

Thursday, October 4th, 2007

More specifically, what does oGFx have to do with E15? oGFx is the graphics engine that powers E15.

There are a number of oGFx images in the E15 gallery that look less internet and more graphics centric. All of these images, along with the first video, are related to the web and E15 because they are the result of several experiments we’ve made to test the E15 graphics engine. Without a powerful graphics architecture, we’re left with little to inspire our future users.

oGFx sets up a 3D environment (an OpenGL context) where chunks of geometry can be dynamically generated and deleted through a Python script on the oGFx console. Dynamically generated textures can be mapped to the geometry using the same scripting environment. The content of these textures can be web content or canvas-based drawings.

Due to a variety of obstacles imposed by the nature of the web, oGFx is evolving faster (as a graphics engine) than what can be supported by E15 to manage web content. oGFx development is currently happening in lockstep with E15 development, but sometimes we like to share exciting new developments that are more purely graphics-based than content-based.

The following are some screenshots of the most recent oGFx development, where we ran a 10000 frame long loop of video on an array of 500 quads, interactively rearranging them in space and applying several blendings and image processing filters. We also show a tribute to an early animation technique, the Phenakistoscope from 1831, a source of inspiration for us and for others that have inspired us, like Jules Marey, Marcel Duchamp, Doc Edgerton, Toshio Iwai, the Visible Language Workshop, and the Aesthetics and Computation Group just to mention a few. All these are screenshots of something that is naturally interactive and in motion, so they are just meant to illustrate an aspect of the whole thing. We are working hard to reach a point where we can release pre-alpha versions of both our projects to the public.

The video extrusion over time:

Video tunnel with screen blending and edge detection:


The Phenakistoscope:

oGFx is a dynamic digital graphics project started by Kyle Buza and Luis Blackaller over the summer of 2007. More information about it can be found here and here.

Development blog

Monday, October 1st, 2007

Welcome to the E15 development blog. We will be posting information regarding the status of E15 on a regular basis. Come back often, and let us know if you have any questions.