By Eskil Steenberg and Emil Brink
Copyright © 1999-2001 Obsession Development and The Interactive Institute II AB
All trademarks mentioned on these pages are the acknowledged property of their respective owners.

If you don't know where you are, take the tour: Tour de Verse. In case you're in a hurry, here's a quick quote:

Verse is a network protocol, for three-dimensional, client/server graphic applications, designed to let anyone build and distribute a 3D "world" on the Internet (or any other TCP/IP network, of course).

This site is both for internal and external use, it will grow and change over time and therefore nothing in this document should be regarded as unchangeable design decisions - everything is subject to change. Also note that in some areas all ideas are not to be implemented at once, but can be seen as a roadmap to what kind of development will be required at a later stage. All info about future developments will be noted as such.

Below the line is an on-going "diary" of the project. To the right is a set of links to more static content, which is where you'll hopefully find much of the actual system documentation.

B A S E
Basic Architecture
Possible Uses
Motivation (Why?)
Node Types
Subscription details
Data Layers
Security

N O D E  T Y P E S
Object
Geometry
Bitmap
Material
Code
Emitter

P R O G R A M M I N G
VLL
VNF (File Format)

P R O J E C T
Contributing
Road Map

R A N D O M  T E X T
Versatile2 Demo
Material Example
"Man in a room"
Other systems
Subdivision surfaces

M E D I A 
Screenshot Page
Showreel Page

D O W N L O A D
Download Verse!

M I S C .
FAQ
Contact
Links

O L D  N E W S
2001-05-04
2000-08-28
1999-12-27
1999-08-09


SourceForge

OpenGL logo


2001-09-28 (Friday)

Whoa. Today it has been almost 28 months since we first started to work on Verse here at the Interactive Institute. During this time, we have learnt a great deal, and also accomplished a great deal (in our own humble opinions, of course). However, we have sort of run out of steam in various ways, and have decided to halt the development of Verse for the time being.

The reasons are several, but the most important one is the fact that we haven't been able to find the resources we feel the project "deserves", and that prevents us from achieving the momentuum to continue. We have (very generously) been offered a chance to continue to work on Verse while making efforts to find external interest, but we are basically too exhausted by our previous attempts to find that an attractive notion.

I would like to thank everyone at the Institute of course, for (as always) making it one of the most interesting places imaginable to work at. Further, thanks to all who have in one way or another contributed to the Verse project during these 28 months. Thanks to SourceForge for their incredible hosting service.

/Emil



Eskil's take on all of this:

Contrary to popular belief I do still exist, but I can unfortunately tell you that what Emil is talking about is true. I have spent the last two and a half years working on this project without any breaks and without any vacation, and I am getting tired so we need some time off. My responsibilities have grown way too large, and I have not felt the support we have needed in the form of developers and money. This is why we have decided to not extend our contract with the Institute.

So what went wrong? The the biggest problem with the project is that we have been too innovative. People simply cannot understand it. It has been very difficult to label, and since it is so open it is hard to categorize it. It is not obvious that networking is the thing that the graphics community needs.

We have found that business people, the open source community, and the graphics community simply don't understand what we do. Many times we have found that once people take a moment and talk with us, they understand what we have done and that it could fundamentally change the way we use the Internet. I guess that all ground-breaking innovation has a tough time communicating itself. This is something that worries me, if companies and the programmer comunity fail to recognize innovation how will we move forward? Another worry is that the only way of doing something like this, is to spend so much marketing money that it becomes impossible to do it in an open and non propietery way, like it deserves to be.

To me Verse still represents what I consider the best idea I have ever had, and it will be impossible for me to just let go of it. All other ideas and projects feel like they lack potential compared to this one. But I can't just go on in it's current form, it will just wear out Emil and me and not lead to any significant advances. Now I need to focus on other things and other ways of solving this.

I will still keep working on the Verse project, and I hope to be able to work on it in another form in the future. I am still actively working with some contacts from some very interesting companies. I think that this project will need to change in the future and I am determined to investigate all options. And of course I just can't stop coding... (I think that once you as an artist get the opportunity to design your own tools there is no turning back ;-)

During our time at the Institute we have done some things that I am very proud to have been a part of, much of this is thanks to Emil who has been the best co-worker one could wish for. We have had a great environment to work within with, many people who I consider more then coworkers, they are my friends.

I guess we just went too far...

Oh yeah, and take a look at my new site it's not done or any thing but hey!

/Eskil




2001-09-14 (Friday)

I'm trying to get back to doing something at least borderline productive here, after the horrible events of the 11th. Please note that the update to this diary I did on that Black Tuesday was done in the morning (local time), thus before the attack on the US occured. Otherwise, the tone had been very different indeed.

Anyway, today I put together a little page that tries to detail some of the magic that happens when you subscribe to a node in Verse, namely by showing what information gets sent to your client, and how it is organized. The page is linked to under "subscription details" above.

/Emil

2001-09-11 (Tuesday)

Hi, there. We're back from the EuroGraphics 2001 thingie in Manchester, UK. Quite a nice place, and also a rather nice conference in my opinion. Of course quite a long way from the sheer size of SIGGRAPH (at roughly 1% of the attendees), but also cleaner and more focused in my view. Nice. Eskil's presentation went without major problems, as more or less expected. I saw a few interesting things in other presentations, and would like to investigate a paper or two further.

Unfortunately, I don't think I will have the opportunity to do so, since at prsent, it seems as if the Verse project is shutting down in three weeks (and the end of September). More about this later, as things develop.

I've checked in absolutely huge amounts of code from Eskil, updating the Enough renderer beyond recognition. It can now act as a geometry editor, among many other things weird and wonderful. I'm not 100% certain that it's compatible with the rest of the main Verse CVS (the transformation flux is annoying), however.

/Emil

2001-08-28 (Tuesday)

I'm trying to get back up to speed with the (seemingly endless) evolution of the object transform system, by working on rotations. It's making my head spin. ;^)

/Emil

2001-08-23 (Thursday)

Hey, take a look at what Eskil managed to cram together using a free demo version of Newtek's Lightwave 3D with accompanying SDK:

Lightwave 3D plug-in screenshot
Click for original image (658x524 PNG, 90KB)

The plug-in acts as a Verse client, which connects to the specified server and downloads bitmaps which are then made available as textures inside Lightwave 3D. If a texture is changed on the Verse server, the change will appear inside Lightwave 3D, just as always with Verse data. This is pretty cool, especially for roughly two days of work. ;^)

Props to Newtek for making the demo version freely available so we can test out things like this, by the way.

/Emil

2001-08-20 (Monday)

Well, another week begins. Eskil's just back from his trip to LA and SIGGRAPH (he came straight to the office from the flight, of course :), with lots of tales to tell and trinkets to display. It'll be interesting to see if any of his many meetings leads somewhere. Let's hope.

/Emil

2001-08-14 (Tuesday)

Eskil is apparently doing fine over in LA (he sent some email). New furniture mentioned yesterday did indeed arrive today. I was in the office at 06:35. Ouch.

Just to do something, I updated the old VLL Guide with an initial description of the "new" (third-generation) object transformation API. It's not complete, and its certainly not as deep or pedagogical as it could be, but at least now it's in sync with the code.

/Emil

2001-08-13 (Monday)

So, this is SIGGRAPH 2001-week. Eskil is (hopefully) on location in LA, and has a few very exciting days to look forward to. Meanwhile, I'll have to get by reading all the usual news sources for the regular releases. I'm looking forward to new graphics chips from the industry leaders, of course, but also perhaps some interesting papers or other more theoretical stuff. And I'm sure Eskil will bring home lots of entertaining widgets, trinklets, bric-a-brac, and generally assorted junk handed out by booth attendants.

In less globally exciting news, tomorrow should bring the entire studio some long-awaited new furniture. That means today will be a day of shelf clearing, and general preparations in the physical space. ;-)

/Emil

2001-08-07 (Tuesday)

Yesterday I checked in some improvements to Adamant, the Verse material editor. The most major addition is the "Clean Up" command, which attempts to bring order to the chaos of interconnected fragments by laying them out for you. This is often handy. I must say that Adamant really is one of the nicer tools I've written for Verse, so far. Coupled with Eskil's rendering engine, which lets you see many of the changes you do in realtime, some pretty impressive things can be done.

Eskil leaves for SIGGRAPH 2001 in LA in four days, so we probably need to work a bit on presentation material and so on for that. Exciting.

/Emil

2001-08-02 (Thursday)

I just checked in this week's quick hack into Verse's CVS. It's a little tool called visiverse, which allows data held in Geometry nodes to be inspected numerically. Hopefully it'll acquire the ability to edit data, too. At the moment, this tool only builds in Linux and other Unix-like environments; I have not written a Makefile for Win32. Just to give you a taste, here's a screenshot of what visiverse looks like when running:

visiverse screenshot
Click for original image (845x532 PNG, 26KB)

The left half of the window shows vertex layers, while the right one holds all the polygon layers. The screenshot shows the first 25 vertices and polygons of the "standard" girl model. Notice that all 25 first polygons are quads (they all have four valid vertex indices) and that only minimum (0) and maximum (4294967295) values appear in the polygon crease layer.

/Emil

2001-07-30 (Monday)

Zzzzzzz. Huh? Work? Oh, yeah, I remember work! Which is probably good, since my days as a vacationing programmer seem to be over, and I'm back at the office. Luckily, Eskil has been here every day for the past four weeks, busily furthering the development of this rendering client (Quel Solaar, the program formerly known as Enough). This has led to the discovery of some exciting, er, "features" in the server code, so I should have something to occupy myself with for the immediate future. Also, as the aforelinkedto page might make you suspect, a more public release of Quel Solaar is (semi)imminent, which might make it a good idea to try it out under Linux. That usually means quite an involvement from my part, too.

Vacation was nice (it was a first during my two years at the Institute), but I think the coming two months are going to be very exciting, too. There's the upcoming SIGGRAPH 2001 in LA, which unfortunately I'm not going to attend--although Eskil is. Then there's the also even more excting EuroGraphics 2001 in Manchester, where Eskil is going to present a paper on his subdivision surfaces implementation. The paper itself will hopefully be made available here in the future, I guess...

/Emil

2001-06-29 (Friday)

I just checked in some brand new client code into CVS. This client, called webpic2verse (how's that for informative?) simply imports pictures from any web server straight into a bitmap node on a Verse server. This sounds simplistic, but is remarkably useful. One goal I had in mind while doing this was to access various web cameras, for example. Currently it only supports JPEG images (through libjpeg) but adding more formats is simple enough.

That was before I learned of images.google.com, though... ;^) I have ideas, but implementing them will have to wait. I couldn't decide what image to show off, so I didn't bother with a screenshot of the client. I hope it's fairly simple to understand what it does. If not, reading my little README might clear it up.

Anyway, it's fairly straight-forward as code goes, and in structure resembles the older vnc2verse client quite a bit.

In other news, Verse is currently "featured" on the front page of OpenGL.org, which is cool. And today is my last working day before four weeks of vacation, which is even cooler! Yay! ;^) Have a great July everyone, I'll be right back in August!

/Emil

2001-06-27 (Wednesday)

I just uploaded a version of the showreel in DiVX:-) format, for your multi-platform viewing pleasure. Also probably for your bandwidth-conserving ditto, since it weighs in at a bit over 12 MB, as compared to the 44 of the old QuickTime version. Talk about technological advantage. :) See the movies page for more.

/Emil

2001-06-25 (Monday)

In celebration of, um, not very much at all, I just checked my working tree of Verse back into CVS. This means that a preliminiary and incomplete version of the third-generation transform system is now publically available. Please note, however, that it really is incomplete. For the three components of transformation, namely position, scale, and rotation, status is as follows:

Position
Roughly 80% complete. New approach with per-client forces that are summed by the server is implemented, seems to work, and is actually very nice. Still missing is support for friction, and there will likely be a few minor call renames. Still, this is useful (and cool!) enough that I wanted to make it available.
Scale
Scale support is actually complete, but very very primitive. This is by design, as we've basically decided that scale is used only rarely, so there are few benefits in providing a full-blown event-based simulation system as we do for positions. This might be wrong, but it saves work now at least.
Rotation
Currently only an absolute immediate direct-set interface is available for changing an object's rotation. Basically a copy of the scale system, this will change in the future towards something very much like what we have for position now.

So, there you have it. Note that this check-in breaks some of the simpler clients in app/, which have therefore been either removed from the build, or "patched" to ignore transform. Also, no external clients have been brought up to date. I'm not 100% certain that is going to happen either, since the transform system as made available today isn't complete, and any work done to bring clients up to date might be wasted. Also nonupdated is all the documentation linked to above. Have patience.

To see how the new transform system can be used by a client to apply an arbitrary force to all objects, indepently of what else is going on, see force.c. This is something which sounds simple enough, but was impossible to do in older designs. Today's checkin has been tagged in CVS as transform3-partway-20010625.

/Emil

2001-06-23 (Saturday)

Just wanted to mention the new dedicated showreel page I just put up. It's nothing advanced at the moment, but will hopefully grow a bit more featureful in the future.

/Emil

2001-06-20 (Wednesday)

Hey, today I got Verse clients running on the lovely Compaq iPaq handheld computer for the first time! It turns out the StrongARM CPU used in the iPaq has a very exotic format for its double-precision (64-bit) floating point numbers, which completely killed the "netpacking" subsystem that deals with formatting data in a standard way for network transmission.

I've now added a temporary (hopefully) work-around to the code, which lets double precision numbers survive the trip. Furthermore, getting OpenGL (in the form of Mesa) API support on the iPaq was a bit complicated. Verse on the iPaq runs using the Familiar Linux, made available over on Compaq's Handhelds.org community site. Which totally rules, actually.

Here's a picture showing the iPaq running a Verse client:

uvedit client on Compaq iPaq
Click for original image (800x600 JPG, 48 KB)

The iPaq is running "uvedit", which is a simple UV mapping editor. The 2D mesh visible on its screen is the mapping of the texture on the standard girl model. The usual prototype-quality renderer is running on the PC behind the iPaq. Both machines are connected to a Verse server elsewhere in the building; the iPaq using its wireless LAN (the Lucent card) and the PC using, well, regular LAN. The mapping mesh can be manipulated using the pen, and the mapping immediately changes on the PC as well. This demo, running between two ordinary PCs, also appears in our show reel, by the way.

/Emil

2001-06-13 (Wednesday)

I just added yet another chunk of Verse development history to the archives, making this page a bit shorted and easier on the bandwidth in the process. Also took the time to fix some broken links in the archived pages, and some other instances of very broken HTML in assorted places.

With a cluster of spare neurons, I'm thinking about what Eskil and I actually could have been thinking about when we "specified" the plans for the new transformation system I've been working on for the past couple of weeks. Some parts of it just don't make sense anymore. ;^) Well, we'll look into that as soon as he returns to the office, I guess.

I'm condidering resynchronizing my tree with the CVS one... Naah, I will probably not do that today, since I would prefer to have a somewhat more complete reimplementation before committing anything.

/Emil

2001-06-12 (Tuesday)

With Eskil on vacation (!), I'm left all alone in our little office... I'm continuing work on the new transformation system. It's now roughly 40% complete, with object position control complete enough to be usable. Scaling, which is dramatically simpler (and less powerful) than in the current CVS version, is in too. I fear rotation, so that's still left out. There are a few tweaks and general server-side optimizations left to do, but I'll postpone those for a while.

/Emil

2001-06-11 (Monday)

One version of the much-mentioned Verse show reel (QuickTime Sorenson), 44 MB) has been made available. This is a medium-quality version; a version with slightly less destructive compression is in the works but will probably not appear this week.

The movie shows many of the demos we have, mixed with some general platform information. It's a mixture of CGI, screen captures, and video, all accompanied by groovy music and Eskil's debut as a voice-over. ;^)

Um, I fear that because of the choice of encoders, this film is not viewable on e.g. Linux or other non-mainstream platforms... My apologies.

Comments welcome. Enjoy.

/Emil

2001-06-07 (Thursday)

We're still alive, actually. Eskil is putting the finishing touches to the show reel mentioned below, and I'm trying to get somewhere with the new object transformation system. Today I got the first 30% or so of it working more or less, and it was pretty cool.

I wonder how many times, during these two years (more or less exactly, this week I think), that a technological break-through has manifested itself in the shape of a cube moving on my screen. At least three or four times, I think. That's the thing with doing infrastructural development, I guess: the cool thing isn't that it's a cube, but rather how it's a cube. Or, in today's case, how the cube moves. :)

/Emil

2001-05-29 (Tuesday)

Hello, me again. No pictures this time, though. ;^) In theory, I'm currently working on the third incarnation of Verse's object transformation system. It's a fairly novel approach, based on additive forces (for translation and rotation). We'll see if we can get it together, right now I'm quite confused over the whole thing to tell the truth.

Eskil is working on a short "show reel"-type information video about Verse, which is really looking great and will probably also be very instructive. I assume it will be posted here when finished, so keep an eye open. He also managed to implement a first version of true real-time 3D shadows in Enough. It's not impossible, although I wouldn't dare to make a prediction, that he'll resynchronize the code for Enough with CVS sometime this millenium.

Saving the coolest things for last, Eskil wrote a paper about the subdivision surface algorithm used in the Enough browser client, for the EuroGraphics 2001 conference, and it was accepted!! So, big congratulations to Eskil, of course. This rocks. My paper, which was about the Verse platform in general, was ("borderline") rejected. Oh, well. I guess one out of two is good enough. ;^)

/Emil

2001-05-22 (Tuesday)

Wow. Yesterday, we had the rather immense pleasure of seeing someone outside our little office at the Institute actually use Verse to do stuff. And not just any old stuff either, but something as cool as realtime spring/mass physics simulation! Here are a couple of shots showing a simple unicycle model, that moved around in realtime:

Simulated unicycle Simulated unicycle
Click for original (1534x1168 PNG, 10KB) Click for original (1534x1168, 11KB)

The underlying physics simulation engine used here was written by Johan Jansson, currently at the Delft University of Technology. It was linked to Verse through a gateway client written by Mattias Rehnberg, at the Chalmers University of Technology (Gothenburg, Sweden). Mattias is subscribed to the verse-misc mailing list, so he can be contacted fairly easily.

These shots were taken by me at our office in Stockholm, running the "classic" prototype-quality rendering client. The servers, along with the specialized gateway client that connects Verse to the physics simulation engine, were both run by Mattias down in Gothenburg. I saw the cycle move in realtime, and got a really good impression of the physics behind it... The distance between Stockholm and Gothenburg is roughly 470 km. Mattias ran the server on an SGI O2 workstation, running Irix on MIPS hardware, while I connected using my standard AMD-based PC running Linux.

We'd like to say "thanks" to Mattias and Johan for pulling this off, it was really good to see! We're looking forward to more results as the physics engine continues to evolve, and Mattias gets further along with the integration with Verse.

/Emil

2001-05-21 (Monday)

Ah, we're back from a pleasant trip to Malmö, where this year's Institute-wide party took place. Always nice seeing a few more of the interesting people who work at the Institute.

Anyway, as hinted about below (the entry from May 10th), we were about to do some iPAQ hacking. Continuing the graphical trend of illustrating progress using images, without further ado:

Verse server on Compaq iPAQ Verse server on Compaq iPAQ
Click for original (1600x1200 JPG, 169KB) Click for original (900x1200 JPG, 114KB)

Apologies for the rather low quality of these imagaes; I didn't have the time to figure out how to make a proper screenshot, so I settled for using my camera. Focusing on the iPAQ on the tabletop was apparently difficult, or maybe I was so excited I couldn't hold the camera still. ;^) The, er, weirdness above the server startup texts is me trying to type using an on-screen keyboard, and failing.

Thanks to John Wentworth and Anders Vedmar in the Narrativity studio for giving us the opportunity to try this out. I'm definitiely impressed with the iPAQs, and look forward to seeing what uses they will put them to.

/Emil

2001-05-14 (Monday)

Well, it seems this Autoconf idea wasn't all that bad, after all. Thanks to a generous loan from a friend, I just managed to take this rather funky screenshot:

Verse server on Mac OS X
Click for original image (800x600 PNG, 199 KB)

Yeah, that's right--Verse now runs on Apple's Mac OS X operating system (on PowerPC hardware). That's the fourth hardware platform I've compiled and run the server on myself, and something like the sixth OS/hardware platform that is known to have run Verse. Cool, huh?!

This was managed through a rather ugly hack in the configure.in script, that I'm not all that happy with of course. But hey, at least it compiles and runs without warnings! ;^) Oh, and I haven't really tried any of the serious clients, either. But the VLL library builds OK, so at least that's there.

/Emil

2001-05-10 (Thursday)

Just learnt about this lovely project, and hurried over. I managed to build, run, and use a Verse server on the ARM architecture without any code modifications. Nice. Next week, we'll be visiting the Narrativity studio in Malmö, where they happen to be experimenting with a bunch of Compaq iPAQs. That'll be... Interesting. ;^)

/Emil

2001-05-09 (Wednesday)

As mentioned in this mailing list posting, Verse is being slowly migrated over to use GNU Autoconf and Automake to handle the build process, at least on sufficiently Unix-like platforms. The jury is still out about how to handle Win32. Manually maintained Makefiles, as we do now, doesn't feel very hot.

Anyway, the conversion status for the main Verse CVS codebase is now roughly 80%, or something. Of course, rating these things isn't an exact science, because I intend to re-do some of the conversion. One big win with really using Autoconf would be including plenty of --enable-OPTION's to enable/disable various parts of the build, thereby circumventing things like not having OpenVRML installed for example.

I'm still investigating, meditating, and generally thinking about how to handle this cleanly. Right now, the dependencies of the codebase have not changed. Also, right now there's only one big configure.in for the entire tree, which I'm pretty sure is not the right thing.

In totally unrelated news, today is my 26th birthday. Whoo-hoo. ;^)

/Emil

Site ver 3.0