Monday, April 27, 2009

3D Declarative Modeling

One of the topics I follow is Microsoft and what it will do with 3D & why it has been so late to the VW table. I titled a number of early posts on the subject "Were is Ray Ozzie?" , noting his early involvement with Mitch Kapor and Second life. Now take a little trip with me into the Land of Oz . First is a quote from Avi Bar-Zeev, now with Microsoft

http://www.realityprime.com/articles/oh-3d
My own take is that no Web 3D system will truly work until 3D web content is made as flexible as text and imagery. Right now, my fonts will scale to my wishes and text will flow to fit my screen width. With 3D graphics, the equivalent is generating objects via declarative modeling, not polygons. None of the approaches I’ve mentioned really make use of this fact. And because of it, no matter how fast they get Javascript to run, you’ll still see that "loading…" 30 second delay in starting up any real 3D scenes. And that, right there, is the kiss of death.
For those that do not know of Avi:
He is a co-founder of Keyhole, maker of Earthviewer (which later became Google Earth ), an early employee of Intrinsic Graphics and a number of other startups. He developed technologies for Second Life, including the procedural 3D object rendering code. He now works for Microsoft So of we go.
The term "declarative modeling" leads to; guess who?:

Gates talks up declarative modeling language effort

Next a check of the Press and a definition:
What, exactly is a “declarative” programming language? According to that old standby, Wikipedia, a program is “declarative,” if it describes what something is like, as opposed to how to build it. To some, a declarative program needs to be written in a purely functional programming language. HTML Web pages are examples of declarative programs.
More google.... mmmmmm... this is starting to get interesting.

A Declarative Design Method for 3D Scene Sketch Modeling
Keywords:

Declarative Method • Intelligent CAD • Object Oriented Graphics • Knowledge Representation

Abstract:

In this paper, we present a dynamic model associated with an intelligent CAD system aiming at the modeling of an architectural scene sketch. Our design methodology has been developed to simulate the process of a user who tries to give a description of a scene from a set of mental images. The scene creation is based on a script which describes the environment from the point of view of an observer who moves across the scene. The system is based on a declarative method viewed as a stepwise refinement process. For the scene representation, a qualitative model is used to describe the objects in terms of attributes, functions, methods and components. The links between objects and their components are expressed by a hierarchical structure, and a description of spatial configurations is given by using locative relations. The set of solutions consistent with the description is usually infinite. So, either one scene consistent with this description is calculated and visualized, or reasons of inconsistency are notified to the user. The resolution process consists of two steps: firstly a logical inference checks the consistency of the topological description, and secondly an optimization algorithm deals with the global description and provides a solution. Two examples illustrate our design methodology and the calculation of a scene model.

Ok back to Oz -Oslo:

“MUrl”: A DSL for RESTful Clients

This is the first of three posts about our MIX talk/announcements.

Today we showed off “MUrl”, which is a DSL and runtime for interacting with HTTP services.

murl

We think “MUrl” has a lot of potential and we are still working on it, but we didn’t want that to stop you from getting your hands on it.

As such, you can download the “MUrl” source code today from the “Oslo” Developer Center.

We are doing this for three reasons: we want you to have something that will make your life a little easier, we want to provide concrete proof of how “M” can be used to make your life easier, and we want to show how you can write your own “M”-based DSLs and runtimes.

I will be clear that “MUrl” is a work in progress and you are going to find things that don’t work the way you want/expect. You do have the source code however. Enjoy.

http://msdn.microsoft.com/en-us/oslo/default.aspx

I will end here, enough to digest for one morning, but can you imagine what Avi hinted at:
A new very high level domain specific language (DSL) & runtime for 3D and virtual worlds with code like above.
I may be dead before that happens. Microsoft will work with ESRI before it works with Linden Research, but who knows what is behind the curtain in the The Land of OZ. One thing I do believe is that this approach is the future.