• Subscribe

    Subscribe to This Week In Panospace by eMail.
    Subscribe in a reader
  • License

    Creative Commons License
    This work is © 2008-2012
    by Yuval Levy
    and licensed under a
    Creative Commons License.
  • Entries

    January 2009
    M T W T F S S
    « Dec   Feb »
  • Archives

Alarm Clock

hugin-logoHere we go again. I prompted a discussion about the Hugin release cycle. And lucky me the wheels started turning. The effort took a dynamic of its own while I was going through a very busy period at work (I’ll post about it tomorrow).

It’s now half a year since Google Summer of Code 2008 finished. Three out of five projects have ripened to trunk. The new Libpano projections are usable in trunk. Bug reports are clogging the bug tracker again, and it seems that the pipeline is frozen. Deep winter?

Under the surface there is boiling excitement. We have a new and very active team member, Lukáš Jirkovský, who has upgraded the codebase to the latest vigra version and is now going through the bug tracker at a fast pace; and Andrew Mihal has developed GPU-powered stitching (powerful videocards are no longer for gamers only). And maybe in a few months Google Summer of Code 2009 is coming.

How do we unclog the pipeline? And most important, how can we prevent future clogging and keep it going indefinitely?

Triggering an ad hoc discussion to wake up the bear from winter sleep is not a good way to keep the release cycle ticking – not even in the world of Open Source. Ubuntu and others have recognized it and have moved to fixed release dates. It’s not ideal, but it’s better than a protracted never-ending and thus frustrating development cycle.

As it could be expected, the discussion, particularly on branching and tagging and the process from the repository to a release attracted many opinions. As Gerry Patterson wisely said, doesn’t everybody have ideas on how to release software?

I am OK with most of the ideas expressed… as long as ideas are followed by action, and action is followed by results. We need to keep the release process ticking, and make it independent.

The generic process which all of the expressed ideas share is the release cycle:

  • develop
  • test locally (development branches, local copies, etc.)
  • test broadly (trunk)
  • release to the general public
  • repeat

And somehow we keep getting stuck in the first three steps.

What we lack are mechanism to move things between the different stages, particularly from the broad test to the release. When is a new development ready for broad testing? when is the project ready for a release to the general public? We need some policies, a way to make such decision that makes them independent of people.

I believe that a moving target like the Hugin project should try to move code piecemeal (as opposed to one big bang), and do it as frequently as possible. We need a lean process that can be repeated frequently.

Moving the code along the first three stages is not so much the issue. Most developers agree to a simple policy: Commit to trunk as early as possible. If local, limited testing shows that no major functionality breaks, move the code to trunk. This is the only way to expose it to broader testing and peer review.

There is a more varied opinion about the release itself. It can’t be replaced by a snapshot (just tarball the latest trunk) because maintaining trunk into a releaseable status all the time requires a considerable effort and slows down the testing of new features in trunk. Moreover, snapshots are not always as polished as users expects production software to be.

One possibility would be to decouple the development cycle from the release cycle, and let the clock control the release cycle (without putting pressure on the development cycle): when the time has come, features that are in trunk and are ready for release are released, while features that are not yet ready are kept for the next release cycle.

It does not really have to be the clock. It could be the readiness of the feature. Then we’d release at every feature. Problem is: how/when to declare a feature ready? The clock would force us to have a look and see if it is ready enough for release or not.

After Google Summer of Code 2008 we had three features move into trunk in a rapid succession: James Legg’s fast preview; Marko Kuder’s PTbatcher, Tim Nugent’s Celeste. Each one of them would have warranted a release in my opinion. So we could have released 0.8.0 (0.7.0 + fast preview); 0.8.1 (0.8.0 + PTbatcher); 0.8.2 (0.8.1 + Celeste). The result would have been a release every two months.

Instead, all of these beautiful features have cumulated in trunk, accessible only to those that venture into building Hugin for themselves. And now, over Christmas, we would have had 0.8.3 (0.8.2 + the new libpano projections). Instead, once again, the commercial stitching application are catching up and will release similar features to the general public before us.

A clock driven release cycle isn’t that bad after all – or are you one of the few people that wakes up in the morning to go to work without an alarm clock?


ccAudio has been conspicuously absent from my VR productions, with a few exceptions. But since I started video, audio is an integral part of it and I have to deal with it all the times. Initially I got away with the background sound, but for my last video production I’d rather call it loud background noise. So I lowered the volume of the original soundtrack and looked for an embellishment.

I do have some basic notions of music (as in: I play Beatles songs on my guitar and my cats run to hide), but I have no music of my own and performing somebody’s else music requires a license.

So I started to look for a source of music that I can legally use in my movies. Back in the last millennium there was royalty-free music: buy a CD and use it according to license. The business model is still present on the internet, and I was willing to shell out a reasonable amount of money, but all I found was a cheap cacophony with complicated licenses.

Licenses? a light went on! Creative Commons. I googled for creative common music and bumped into Jamendo. Free and legal music downloads of good quality and many styles. The style is a matter of taste. I liked this particular song, and the whole album. The license a matter of use and Creative Commons’ modularity makes it easy to choose a work with a license compatible to your intended use.

In my case, of the four limitations (or freedoms, depending on whether you look at it from a licensee’s or licensor’s perspective) there were two which did not make a difference to me, one that I needed and one that I wanted to avoid:

byAttribution (BY) does not make a difference. Giving credit to the artist is the least I can do. In this case, I went to his myspace page (no login required, f**kbook) and donated some money, and of course, you’ll see proper attribution in the movie’s credits.

ncNon-Commercial (NC) does not make a difference either. My movie is not commercial. If you have a commercial project, make sure you use work with a license that does not include the NC condition.

ndI needed the freedom to make derivatives. So I had to avoid content with the No-Derivatives (ND) condition. The ND condition is a roadblock to the remix culture, but there are sometimes good reasons to use it, like on this site.

saI wanted to avoid Share-Alike (SA) because the content of the movie is very personal and I prefer not to license it under the same terms. I retain an “all rights reserved” – you can watch it here, in the context and form I choose to make it available.

Copyright, complemented with Creative Commons, is a fantastic enabler of creativity.

Social Networking

f__kbookThere is something wrong when a third party obliges me to open an account to access the personal content of a friend who wants to share it with me. The other way around, I will never willfully accept that an entity keeps my content hostage to its interest (commercial or other) and obliges my friends to open an account. I don’t care how popular that entity or business is. If it can’t respect my ownership, access, and privacy rights, I’ll take my content and my personal data elsewhere.

And I don’t mind my friends calling me a brontosaurus or other  names for staying out of the “social web”. The real social network is not behind the keyboard, anyway.

I found this funny colorful account (warning: graphic language) of somebody who tried to quit f**kbook.

Photo credits: flickr/Greg O’Connell CC-BY-2.0, edited. I was so lacking time and so in need to put out this statement that I quickly searched for an appropriate image that I could use to go with this short text.

Google Summer of Code 2009 Announced

hugin-logoThis morning Leslie Hawthorn of the Google Open Source Program Office announced that they “have received Executive approval to run Google Summer of Code and the
Google Highly Open Participation Contest once again in 2009”

Given the current economic climate, this is very good news. “Summer of Code will be a bit smaller (targeting ~1000 students this year) so it will likely target fewer organizations (~150). The stipend amounts ($4500 to the successful student and $500 to the organization) will remain unchanged”.

The discussion is on in the Hugin community. Should we participate again? we had two great participations in 2007 and 2008.

If you’re a student looking for an opportunity, most of what has been written for 2008 is still valid today. Join the community, learn how to build the code on your machine, play with it, send a small patch for review. The exact timeline / deadlines will be published soon.

However it is absolutely imperative for us to make clear that there is no guarantee that our organization will be accepted in GSoC2009. And that we cannot in any way guarantee a place for the students in the program just because our organization is accepted into GSoC 2009.

Let’s get it rolling?

Pannini Again

Pannini as intended, 230°

Pannini as intended, 230°

After I published samples of the new libpano projections in Hugin, Bruno found that Daniel’s implementation in libpano does not perform like his original Mathmap implementation. Daniel started a thread to unify the opinions on what the projection should look like, and the result is that Hugin now has two new projections instead of just one: Pannini (Bruno’s) and Equirectangular Pannini (Daniel’s). The name will be corrected to reflect the correct spelling of Giovanni Pannini, the Italian painter who inspired Bruno’s research. As of SVN revisions 921 (libpano) and 3577 (Hugin) this is not yet the case, but the functionality is not affected.

Another interesting finding is that Pannini’s projection is the same as the Recti-Perspective projection that Max Lyons will introduce in the next version of PTAssembler, the most advanced of the proprietary stitchers in terms of post-processing projections.

Equirect Pannini 230°

Equirect Pannini 230°

Chilling Effects

Frozen Planet

The latest World Wide Panorama (WWP) went online. I’ve been a regular contributor to the WWP ever since I found about it four years ago, but this is likely to be the last event I will participate to. Click on the above image to interact with the VR I entered, or click here to see it in its WWP-context. My entry’s text is replicated below.

Chilling Effects

The weather is quite a roller-coaster in Québec in December. This year we had a White Christmas, with temperature swings from -21°C to +9°C within a few hours. Snow and rain alternate, with icing rain building a beautiful though sometimes lethal coating on branches and roads.

Sunday morning, during a break between icing rain and rain, I went out to take this panorama. The atmosphere was surreal. The ground was freezing cold, but the air was warm and there was fog and low clouds. The ice was melting and dripping. I found some ice leftovers on the viburnum trilobum with its red berries at the border of the wood next to the little pond.

I just did not feel like reviewing my panorama productions of the year. Not that I did not have any worth publishing, like this that I also used for the nadir tutorial; or the pano meetings I attended this year in New York and Toronto.

Like last year I participated again to the Google-sponsored development of free panorama software, and blogged about it with panos. And this year others stepped into the tradition I started of a pano at the Google Summer of Code Mentors Summit.

And then there was the most beautiful panorama I ever made. Too beautiful for a “best of the year”.

Actually the weather conditions, with the preceding roller-coaster, reflected pretty well how I feel about my participation to the WWP throughout this year.

In the past, participating to the WWP energized and motivated me. It was fun to be part of the community; it was stimulating to interpret creatively Don’s essays; it was challenging to push my techniques to the limits with the help, feedback and guidance of experienced masters of the art met in the community. There was a sense of purpose, accomplishment and connection after every event. I was proud to have my little contribution up there, next to some of the VR-artists I admire most.

But in the year coming to an end my motivation faded gradually away under the chilling effects:

  • of the copyright infringement / abuse that my sometimes very personal entries have been subjected to along the entries of many other artists contributing to the WWP;
  • of the indifference of some to that abuse;
  • and worse of it all of the hypocrisy of some others when I tried to rally support for a negotiated solution of the abuse.

I spent a large part of my free time this year trying to organize a collective response to a major copyright infringement of which many of us WWP-contributors have been victims. And I felt lonely, particularly when I found out the hard way that some members of the “community” joined my effort with the sole purpose of seeing it fail, putting personal interest ahead of community interest.

Participation to the WWP no longer feels like a joy. I can no longer relate to the concept which in my opinion has been watered down and now looks a lot like the many flickr-like pano publishing sites which have sprouted like mushrooms and for which I have no particular attraction.

I no longer feel the bond of the past. I am still in touch with many talented artists I have met over the years and am thankful to the WWP for being the fertile ground for those contacts. But quantity over quality and conservatism over bold experimentalism have watered down the visionary concept to which I subscribed, for which I could motivate myself to spend two nights without sleep out in the freezing cold.

My interest has shifted. It’s nobody’s fault. It’s just evolution, natural change. The quest for the next frontier. This panorama is actually the first time I have mounted the fisheye lens this month. I’m now doing more video than photo, and more portrait than landscape. And it is likely to stay so for a while.

I surely will do some panoramas here and there, and contribute to the hugin-ptx community that is developing the free software to make panoramas, but I can no longer guarantee the time and motivation to contribute regularly to the WWP as I have done over the past four years.

Four years are a very long time in technology. QTVR is being replaced by Flash, flat panel displays of ever growing size and resolution are hitting the market and the next medium for panoramas will be, no doubt, dome projection. Already now they can be set up for a five digits dollar amount.

I hope to continue the dialog started here on the WWP, with fellow artists, technologists and enthusiasts. You can always find me here on my blog and on my photo website. And if I was lucky enough to meet you, you also have my personal contact details.

A heartfelt farewell, World Wide Panorama.

Vedutismo – Practical Application


equirectangular 360°

The above is an equirectangular projection of a full spherical panorama. You can view it from the inside here.

In the past few days, libpano has seen the addition of four new projections. I added them to hugin’s experimental version in the subversion repository.

Panini 180°

Panini 180°

Panini is credited to Bruno Postle and Thomas K. Sharpless. It was added to libpano13 by Daniel M. German, and it is probably the most interesting of the new projections. It replicates the perspective of vedute, stunning detailed large painting with a very broad field of view.

Architectural 360°

Architectural 360°

Architectural is an idea of Daniel M. German. A hybrid mix of Miller (which is almost conformal) on the top half and Lambert Equal Area on the bottom half. It presumes the space around you (in the bottom half of the pano) is less important than the space above the horizon, uses a smaller surface than the Equirectangular while giving more space to the top half.

Oprtographic 180°

Orthographic 180°

Jim Watters committed the last two, which are fisheye-like variations – the orthographic and equisolid projections.

Equisolid 180°

Equisolid 180°