begun the bling-wars have

This is going to be a very long entry… I promise you… and I wonder how much flak I’ll get for this.

The recent months have clearly demonstrated that the average user of an OpenSource-system enjoys a healthy amount of bling. Just every computer-user is “guilty” of this. Some to a larger degree, some to a lesser one. The current state of things looks actually pretty good on our side of the fence… at least as long as inter-window effects are concerned (think: all effects made available via compositing-managers like compiz). Several effects are really improving usability or general accessibility (e.g. cube, expose-like scale, tab-switcher, unfold, desktop-zoom) and then there are some just for fun (e.g. wobbly, skydome). But sadly it stops here.

Those afore mentioned “inter-window” effects are just one part of the equation. The other paramount portion is made up of application-level or UI-toolkit-level effects. No idea what I mean? Some (admittedly) extreme examples:

  • pulsing buttons
  • smooth fading transitions or animated movement hiding or unhiding widgets or areas
  • smoothly scaling up or down widgets or other UI-toolkit-level elements
  • what about “cleanly animate and flip-rotate these video-texture surfaces from here to there”
  • a consistent appeal and look between inter-window- and toolkit-level effects
  • seamless integration of realtime-3D, 2D-vector-graphics, video and UI-elements in one application
  • parameterized animation clues in the UI based on user-input, application- or system-state
  • a reflecting, HDR-lit, shadow-casting map-view of your local area based on time of day and geographical position

I could continue growing this list for some time. Just look at the UI of OS X Leopard (CoreImage, CoreVideo, CoreAnimation). Also Vista is well armed in that domain (Avalon aka Windows Presentation Foundation aka .NET 3.0 aka Windows Live Something). Now I can imagine some of you thinking: “Good lord… I get it. MacSlow wants to mimick the competition. What a faggot!” I’m sorry for you if you actually do think that. But that’s not the real deal behind it. We have most (if not all) of the needed low-level parts in place for this… cairo, OpenGL, gstreamer, librsvg, gegl (ok, not all are fully developed yet, but most are) to name some more well-known ones… akamaru, libclutter to name some lesser-known ones. What is needed is a general effects-, animation- and layout-library pulling together all those assests we have in the OpenSource field and become the icing on the cake in form of a convenience-layer. Also providing solid frameworks and standard boilerplate-calls for the usage of fragment/vertex-shaders, realtime image/video-filters etc.

That in turn should be used to conceive tools offering artists and designers to build UIs in a much more sophisticated fashion. Just like today design of an UI can be done in glade without a single line of code thus concentrating more on usability-aspects during the process. I would like to see people like e.g. jimmac not doing mockups of his ideas in blender, but for real and being able to test them out on real users… without him needing either learn all about coding gtk+, OpenGL, cairo and what not or waiting for some OpenSource-developer to find time and motivation to implement it. Or have the folks working on defining and testing the specs for Tango broaden their reach and also work on a common set of reasonable animation behaviours of a desktop UI. Things like those make all the sense (once we have the needed frameworks and tools in place). In my opinion this is something very worthwhile to undertake for Gnome & Co and the free desktop-systems in general. It does not stop on simple UI-matters. Having a standard set of shader-based effects for image-, video-, audio- and mesh-data provided by a common cross-platform library, makes the platform more attractive to developers, who are usually not very keen about Linux as a development-target at the moment. Aside from this, well-known OpenSource projects like Diva, PiTiVi, jashaka, jokosher et al. would probably also welcome such a tool set.

I would also like to see gtk+ 3.x, Qt 5.x, Gnome 3.x and KDE 5.x being able to base their future work on such a library. This would probably also be a welcomed effort by the Portland-project. Diversity is good… under the hood, but not on top, when you want to get things done. All Monos, Pythons, Rubys and whatever languages of the world will not give OpenSource-systems the boost in attracting new 3rd party developments, if we don’t boraden the disciplines our tool-chains can provide and simplify their utilization. This is especially of concern looking at the offerings on proprietary platforms. Big players like Sony, IBM, Sun, intel and should step in here to help with the heavy lifting ahead of us. The benefit for them is clearly a more media-complete solution with all the benefits OpenSource offers (I disregard the DRM-mess for the moment). Furthermore I would also like to suggest to the community to establish a good relation-ship with coders from the demo-scene. We need all the help we can get.

While this may not be needed today, it will be needed tomorrow and we better start working on it today to have it in a mature state in the future. No one can tell me that s/he would not like to see a project like this spawning. Of course it is a huge endevour… but to stop is to fall behind! It’s go big or go home!

Just my humble (but still very concerned and serious) 2/100 euro-cents. Comments welcome!

P.S.: These discussions here actually pushed the buttons in my brain to make me write up this.

11 Responses to “begun the bling-wars have”

  1. Markus Jonsson Says:

    OMG, I woke up and thought I’d written that post. I’ve actually had a lot of thoughts in this direction over the last two weeks or so. Just looking at the Quartz Composer for Mac OS X and seeing allt the cool tools devs on other platforms have. Exams keep getting in the way so I haven’t written anything about it..

    Count me in.

  2. kwayne Says:

    wow - that is like the best post title ever!

  3. no one in particular Says:

    What a faggot

    Yikes.

  4. sigmaris Says:

    (Oops-the top of my last post seems to have been cut off. Here is the full post again, please delete the previous one)
    What I think would be interesting to see is a way for widget toolkits (GTK+, Qt, etc) to interface with a hardware accelerated compositing manager, be it compiz+Xgl or some future software. This would provide very powerful possibilities, as the toolkits would be aware of effects applied by the compositing manager.

    For example, consider the process that compiz + Xgl currently uses. X windows (even ones containing OpenGL or Xvideo) are redirected by the Xgl server into offscreen pixmaps, which are then used as textures for 3D objects by compiz. Sure these textures can be rotated, swirled and alpha blended, but in the end they are still pixmaps, rendered before any 3D effects. This means, for instance, that when zooming in to a window with compiz, all you see are bigger pixels. There is no real additional detail.

    Now consider what could be done if the widget toolkit was aware of the zoom effect, and could draw using OpenGL itself, without being redirected into an intermediate pixmap. Shapes that cannot be represented accurately on screens consisting of pixels, like curves in fonts and other vector graphics, could be drawn at a higher resolution while zoomed-in. Basically what I am talking about is removing the idea of a window being a grid of pixels, and instead make it an arrangement of shapes that can be manipulated by the compositing manager. The zooming example is only one I can think of off the top of my head, there are other advantages for widget toolkits to utilize the power of a harware accelerated desktop with features like pixel shaders.

    This may seem extremely complicated to build on the frameworks we have now, but as MacSlow says, we must plan for the future.
    BTW, I believe (only through second-hand accounts) that Mac OS 10.5 is moving towards this concept, at least I have heard talk about vector-graphics based widgets and resolution independent UIs in Leopard. Windows Vista may be planning the same thing.

  5. Diego Says:

    I fully agree with you, we need a CoreAnimation/XAML equivalent.

    However, it’s interesting to note that we already have one in linux - it’s one of the things that Enlightenment 17 platform does. They have been doing it, being fair, even before Vista / leopard. You should check some of the E17 apps…there’s for example a image viewer that makes images and the text which belongs to those images fade and go down into an spiral when you change between images. All the effects are done with few effort…basically you tell the text to make a spiral move while fading out at the same time and the e17 engine will do it. They’ve things like "moving backgrounds" that use this technology cleanly (get two images and move it in the background) and other impressive ideas. Sadly, the linux world is too fragmented and it will be only available for E apps in the small E world, not in real world linux apps :/

  6. cptnapalm Says:

    I submitted this to digg.com (I tried slashdot, but I kept getting errors). http://digg.com/linux_unix/The_Bling_Wars

  7. Karl Lattimer Says:

    http://www.qdh.org.uk/wordpress/?p=90

    Ha Ha MacSlow you’ve been digged ;P Watch as your blog grinds to a halt hehehe ;)

    My 2p attached, we should probably thrash this out sometime seriously.

    peace out ;P

  8. incon Says:

    My view on eye candy

    Each time I open a terminal with and transparent background I keep thinking why doesnt all the eye candy start going to the apps we use…. Wow we can wobbly,fade,etc whole windows…. Child items in app dont… It makes things feel out of place

    Things that I feel should be in place;
    *true transparent background in apps
    *moving between tabs in apps should fade in between
    *moving toolbars in apps should wobbly

    So yes I am all for compositing-managers to composite apps also

  9. Gergely Nagy Says:

    Yeah, MacSlow for prezident :) seriously man, keep up the good work and thinking :)

  10. Osei Says:

    Seriously, you should check out Enlightenment Foundation Libs (EFL). Diego mentioned this but he didnt sell it enough. The EFL has been able to do this for a while now. As I read your wish list, it sounded really similar to what Rasterman (the EFL/E17 main dev http://rasterman.com) keeps talking about.

  11. Astro Says:

    WITH GREAT POWER COMES GREAT RESPONSIBILITY

    The problem with all this is that while people will enjoy complex pixel shader effects on their text,
    the overall usability has a very high chance of going way down. I know I’ll end up wading through
    god zillion use-less animations before I get to do anything.

    The real question is, and one I’m sure your keen to answer to, is once these tools exist(even on linux)
    will people be able to use them to create interfaces that are cleaner, simpler, and easier on the brain
    as opposed to the eyes.

    Every one remembers how quickly the novelty of aqua wore off. hell TWM can do everything that it can do, in 2006

    Will we break the 2D window paradigm and create the portal.
    Will we axe the desk-top and create the Head-space.
    Hack away the icon to reveal the 3d model.

    I see two possible out-comes to all this,

    BEAUTIFUL applications that suck

    or

    BEAUTIFUL applications that do something cool,

    either way there pixel shaders will come, but I guess what I’m trying to say
    it spider man was right.

Leave a Reply