Entries:
Comments:
Posts:

Loading User Information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading User Information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

Daniel Lehenbauer - Demo of Avalon 3D

Download

Right click “Save as…”

Daniel is a software design engineer on the Avalon team and he's responsible for the 3D features of Avalon.

Here he gives us a demo of Avalon 3D. Really cool stuff. Originally designed to only run on the next version of Windows, code-named Longhorn, Avalon is now supported on Windows XP and Windows Server 2003. In fact, the demo here is done on XP.

For more information on Avalon, see the MSDN Longhorn Developer Center.

Tag:

Follow the Discussion

  • I was originally looking forward to Avalon, now, after seeing this, I'm not so impressed and am not looking forward to the new MFC nightmarish hell that Avalon is going to be.

    Avalon also looks to me to be very limiting; you can do what it says on the 'box' but no more. If it isn't supported in this version either hack it or wait for the next release and cross your fingers...

     

    His blog's address, which we all should be visiting (?) was never shown in the video.

  • MinhMinh WOOH!  WOOH!
    Just curious why it is necessary to have a <Viewport3D.Camera> element within the <Viewport3D> element. Why not just <Camera> ?

    I'm sure there's a good reason, I'd just like to know.
  • NetRyderNetRyder Tech Junkie
    Manip wrote:

    His blog's address, which we all should be visiting (?) was never shown in the video.


    http://blogs.msdn.com/danlehen/
    *Subscribes to feed* Smiley
  • Impressed. Very.  I love looking at eye candy (I am a mac user after all) and I'd love to see some more over the top eye candy ... any pointers to the coolest demos?

    And what a nice chap ...

  • http://msdn.microsoft.com/Longhorn/productinfo/conceptvid/default.aspx
  • ignor this as its off topic

    view ports, cameras & lighting, I supose all 3D systems are alike
    http://www.alice.org/
    http://www.alice.org/Alice_movies/

    also
    http://www.opencroquet.org/About_Croquet/about.html
    http://www.opencroquet.org/About_Croquet/screenshots.html
    http://www.opencroquet.org/About_Croquet/userguide.html

    These two stem from or are associated with
    http://www.squeak.org/features/graphics.html


  • FedorFedor Fedor Andres
    i believe that its a very handy tool......but i wonder there is a designer who help me to avoid all those lines of code?????

    anyway....thats a very interesting technology, let see what happens in the real world!!
  • rhmrhm
    Avalon 3D looks cool, but like games developers, you all want to work on the engine and noone wants to work on the supporting tools. I'm amazed to hear that there isn't even an importer strategy yet. That's like 5% of the work you've got to do before people will use this. Where's the 3D equivalent of the windows forms designer? I know some people love XML and sure, it's quicker to write XAML than write the code that the XAML compiler generates, but most people's eyes glaze over at an editor screen full of XML.

    OK, short of licencing something from Autodesk, Microsoft isn't going to come up with a 3D editor for Avalon 3D developers, but I've yet to see a visual designer for 2D XAML forms. In fact I've yet to see anyone type XAML code in an editor that provides help with tag and attribute names. Now I see why Microsoft keeps delaying all these products - the demos all look cool, but there's so much more work to be done before they're useful. Meanwhile all the talk about XAML and Avalon puts people off developing Windows Forms code.
  • rhmrhm
    by the way, the "you can do X in just Y lines of code" is a demo gambit I keep hearing and it's really not that impressive to the seasoned developer. Like the guy in the Mac film saying "you can build a web browser in 6 lines of code" or the Whidbey forms demo guy saying how you could build an Outlook clone in 20 lines or whatever that was. All these claims show is that you have a component available that implements some large chunk of functionality and it has a sane interface. Go over to ComponentSource.com and see all the hundreds of components you can buy there that do sophisticated things without you having to write any lines of code. If I go and buy a Quake licence from Id software I can "write" Quake 3 in 10 lines of  C code, but that doesn't mean that C is a wonderfully productive language for writing 3D games.

    Do you see what I'm getting at here? It's vital that the development environment supports component useage and it's nice if the environment includes some powerful components on top of the usual buttons and list boxes, but the presence of those components only makes the user instantly productive at one thing - the thing the components were designed for. For example, those Whidbey components might let you put together an Outlook line interface in 20 lines, but what if you now want to write a travel reservations app? Those components help you little if at all - you're back to writing thousands of lines of code.
  • <ViewPort3D.Camera> is the complex property syntax of XAML. If you look at the ViewPort3D class, it has a Camera property. Because the various camera types have their own properties which need to be assigned, they also need to be declared as an element with attributes and perhaps child elements of their own. The complex property syntax, "ClassName.PropertyName", exists for this reason.
  • Hi Minh - In Xaml, "<Foo>" means create an instance of the type "Foo".  "<Foo.Bar>" is a reference to the property Bar on the parent element of type "Foo".  So this:

    <Viewport3D>
      <Viewport3D.Camera>
        <PerspectiveCamera ... />
      </Viewport3D.Camera>
    </Viewport3D>

    roughly translates to:

    Viewport3D vp = new Viewport3D();
    PerspectiveCamera camera = new PerspectiveCamera();
    vp.Camera = camera;

    If Xaml had intrinsic knowledge about Avalon we could make <Camera> mean "reference the Viewport3D's camera property" instead of "create a new object of type Camera".  However, one of the design goals of Xaml is to be a general declarative programming language for wiring up .NET objects, not Avalon specifically.

    (NOTE: If the author of the property type provides a TypeConverter that can convert from string, you can use the shorter form <Foo Bar="Baz" />.  This is how <BrushMaterial Brush="Red" /> works.  The Brush type provides a TypeConverter that can convert the string "Red" into an instance of a Brush.  However, representing objects as a string is not always practical.)
  • Mike SampsonSampy And I come back to you now - at the turn of the tide
    rhm wrote:
    Avalon 3D looks cool, but like games developers, you all want to work on the engine and noone wants to work on the supporting tools. I'm amazed to hear that there isn't even an importer strategy yet. That's like 5% of the work you've got to do before people will use this. Where's the 3D equivalent of the windows forms designer? I know some people love XML and sure, it's quicker to write XAML than write the code that the XAML compiler generates, but most people's eyes glaze over at an editor screen full of XML.

    OK, short of licencing something from Autodesk, Microsoft isn't going to come up with a 3D editor for Avalon 3D developers, but I've yet to see a visual designer for 2D XAML forms. In fact I've yet to see anyone type XAML code in an editor that provides help with tag and attribute names. Now I see why Microsoft keeps delaying all these products - the demos all look cool, but there's so much more work to be done before they're useful. Meanwhile all the talk about XAML and Avalon puts people off developing Windows Forms code.


    Most of us tool guys (read: devs over in Visual Studio) are still working on getting Whidbey out the door. Not to say that we're not working on tools or the Avalon guys don't have special stuff in the works, just that the people that brought you the Winforms designer and such are working on Visual Studio 2005 at this very moment.

    I'm sure that future versions of Visual Studio will be Avalon friendly AT LEAST for 2D.

    NOTE: The speculative statement above is based on no internal knowledge of any ongoing or future project. I'm making a guess using the same information available to the public.
  • aToastaToast IT will make you cry
    I noticed that the demos were run in a windows xp environment - how do you I get started on coding avalon xaml? I've got the vs2005 beta but there doesn't seem to be a namespace called avalon or xaml. Please help I really want to get some hands on experience with Avalon.
  • I haven't been this excited for a new technology in a long time. Kudos to MS for not making us wait till Longhorn.
    Great vid, as always.
  • The Channel 9 TeamThe Channel 9 Team 5 guys from Redmond

    Thanks Kosher, the Interviewer was Longhorn Evangelist Karsten Januszewski, by the way.

  • rhm - Thanks for the feedback.  The request for visual designers has been consistent from developers.  What was shown in the video should not be thought of as the final story on development tools for Avalon (although I personally am still smiling about the integrated F5 experience after doing all of my WinHEC samples from the command line. Smiley

    I hope that the excitement around Avalon is not detracting from Windows Forms.  It's a bit of a balancing act.  On one hand, we want to be open and transparent with developers about the exciting new things in Avalon.  On the other, windows Forms is a great platform for writing client apps with a long life ahead of it.  It is important to remember that Avalon has not yet reached Beta 1.  Hopefully we have been clear in messaging to our customers that if they are writing a client application today they should be targreting Windows Forms and that the investment they make will translate well to Avalon if they choose to migrate in the future.

    Interesting comment on "you can do X in just Y lines of code" demos.  Hopefully it was clear that even though I was using an XML markup language I was still coding against the low level graphics primitives from the Media3D namespace.
  • The programming seems easy enough that they could make an easy WYSIWYG program for it. It would save some code writing time, and make it easy to import graphics from the graphics person I use to import her graphics.

  • MinhMinh WOOH!  WOOH!
    danlehen wrote:
    Hi Minh - In Xaml...
    roughly translates to:

    Viewport3D vp = new Viewport3D();
    PerspectiveCamera camera = new PerspectiveCamera();
    vp.Camera = camera;

    Thanks Dan, for the explaination. Another question: Is there a XAML parser that consumes XAML source & execute statements on the fly, or is there a XAML compiler that converts XAML source to a .NET assembly? If the latter, couldn't you use reflection to check for the "Camera" property, so you wouldn't have to specify <Viewport3D.Camera> ? But perhaps the syntax is there for consistency & simplicity.
  • Minh - You can parse xml directly to an object graph with Parser.LoadXml.  Alternatively Xaml can be compiled into a pre-parsed binary form called Baml.  The default behavior in VS.NET is to compile to Baml and then embbed the Baml as a resource into your .exe.

    We did experiment with compiling Xaml directly to IL, but it turned out that the perf difference between Baml and IL were negligible and Baml has the advantage of being more compact and able to be consumed asynchronously.
  • Minh wrote:
    Another question: Is there a XAML parser that consumes XAML source & execute statements on the fly, or is there a XAML compiler that converts XAML source to a .NET assembly? If the latter, couldn't you use reflection to check for the "Camera" property, so you wouldn't have to specify <Viewport3D.Camera> ? But perhaps the syntax is there for consistency & simplicity.

    Have a look at System.Windows.Serialization.Parser. It parses XAML or BAML (binary XAML) on the fly and turns it into an in-memory object graph (and vice versa).

    As for using reflection to find the Camera property how would they know to look for a property named "Camera" if you didn't specify it???

    HTH,
    Drew
  • danlehen wrote:
    On one hand, we want to be open and transparent with developers about the exciting new things in Avalon.  On the other, windows Forms is a great platform for writing client apps with a long life ahead of it. 


    Sorry if this question is well documented somewhere.  Is there a migration plan from Windows Forms to Avalon for those of us that want it?  i.e. Is there someway we can add say an Avalon 3D ViewPort to an existing Winforms app?  I would love to be able to replace my flowchart control with a nicely rendered Avalon 3D version later on.
  • Rossj wrote:
    Sorry if this question is well documented somewhere.  Is there a migration plan from Windows Forms to Avalon for those of us that want it?  i.e. Is there someway we can add say an Avalon 3D ViewPort to an existing Winforms app?  I would love to be able to replace my flowchart control with a nicely rendered Avalon 3D version later on.

    Yes, you can cross host. Avalon content can be hosted in WinForms (via ElementHost), GDI+ content can be hosted in Avalon (via HwndVisual), a windows form control can be hosted in Avalon (via WindowsFormsHost) and any Win32 Window can be hosted in Avalon (via HwndHost). There are performance hits for doing one or the other, but since MS isn't even @ beta with Avalon yet it's hard to know what exactly the cost will be.

    Read all about it here.

    HTH,
    Drew
  • I've looked at the code in the demo and I'm starting a XAML generator tool. I'll post more in a bit and if anyone wants to help out or some more info, email me at esmith@halomessenger.org.

    Of course the tool wont be complete or very useful until I can get my hands on a build of the Avalon SDK, but I can get the basic app done soon.

    -Eric
  • The code looks a lot like Povray (which is nice), but other than that the demos don't look like anything that couldn't have already been done with Direct3D, and it probably hasn't been because there isn't an overwhelming reason to do so. While they demonstrate a few programs that use 3D, the interface the developer uses remains 2D and 3D isn't used anywhere to enhance functionality, and doesn't show how this would increase productivity. But it's a nice intro to Avalon.
  • MinhMinh WOOH!  WOOH!
    dmarsh wrote:
    As for using reflection to find the Camera property how would they know to look for a property named "Camera" if you didn't specify it???


    I meant in terms of mapping the <Camera> element to the Camera property of the Viewport3D object instead of using the syntax <Viewport3D.Camera>. I thought the explanation was that the Viewport3D prefix needed to be specified to signifiy Camera being a property of Viewport3D (maybe I got that wrong). I just like the clean-ness of <Viewport3D><Camera><...>. But that's from a total XAML newbie's stand point.
  • MinhMinh WOOH!  WOOH!
    Halcyon wrote:
    The code looks a lot like Povray (which is nice), but other than that the demos don't look like anything that couldn't have already been done with Direct3D, and it probably hasn't been because there isn't an overwhelming reason to do so. While they demonstrate a few programs that use 3D, the interface the developer uses remains 2D and 3D isn't used anywhere to enhance functionality, and doesn't show how this would increase productivity. But it's a nice intro to Avalon.
    I think the main benefits to a vectorized interface won't be an eye-popping 3D buttons & menus. But varrying resolution displays will benefit by minimal UI change. Also, the "silkiness" factor is anothing thing I like.
  • Minh wrote:
    I think the main benefits to a vectorized interface won't be an eye-popping 3D buttons & menus.


    What will it be?  Let's take a look at advances made with 3D interfaces today:

    Microsoft TaskGallery - Project Looking Glass - Browse3D - 3D Navigator

    These are interesting, but do not seem to bring any advancements that 2D equivilants cannot compare with.  For example, Browse3D introduces a useful Exposé-like method of looking at the browser history, but it is still represented in a 2D format, like its OS X counterpart.  The concepts for implementing 3D used in these applications do not seem to be gaining popularity or enhance productivity.

    Minh wrote:
    But varrying resolution displays will benefit by minimal UI change. Also, the "silkiness" factor is anothing thing I like.


    That's a nice change, but overall it's evolutionary and not revolutionary.  This will increase the attractiveness of the interface, but will not directly increase productivity.  There is no overwhelming reason to begin writing applications that have a 3D interface.
  • Sven GrootSven Groot Don't worry... I'm a doctor.
    Minh wrote:
    Thanks Dan, for the explaination. Another question: Is there a XAML parser that consumes XAML source & execute statements on the fly, or is there a XAML compiler that converts XAML source to a .NET assembly? If the latter, couldn't you use reflection to check for the "Camera" property, so you wouldn't have to specify <Viewport3D.Camera> ? But perhaps the syntax is there for consistency & simplicity.

    Interesting. Basically, that's what I do for XCG. The difference is that for XCG, the behaviour of something lile <Viewport> or <Camera> would be determined by its parent. These elements (which are called Generating Elements in XCG) have several default actions, but the parent is free to do with them as they choose. In the case of a <gen:Class>, it will treat its children as field defenitions of the type, just like XAML does for <Viewport>. However, the generating element will then look at its children, and assume them to be property references, and use reflection to look them up. There are some additional concerns here for collection type children and referencing base class properties, some of which still need to be addressed. (Note that the latest code on the site is out of date, and many of the things I've mentioned here aren't in there yet).

    One of the things I'm doing purposely is trying to know as little as possible about XAML. XCG is meant more as a learning tool for me than something real people might use in a real situation, and one of the interesting things is to test the "great minds think alike theory". In other words, will I come up with the same solution to certain problems as the XAML team?
    Already we see that it is not always the case. Wink
  • MinhMinh WOOH!  WOOH!
    Halcyon wrote:
    What will it be?  Let's take a look at advances made with 3D interfaces today:

    Microsoft TaskGallery - Project Looking Glass - Browse3D - 3D Navigator


    I'm thinking back to the days when VRML started to come in. Sites became 3D storefronts along side 3D streets. The interface was much more interesting, but terribly more inefficient than the then-current 2D UI.

    Halcyon wrote:
    These are interesting, but do not seem to bring any advancements that 2D equivilants cannot compare with.  For example, Browse3D introduces a useful Exposé-like method of looking at the browser history, but it is still represented in a 2D format, like its OS X counterpart.  The concepts for implementing 3D used in these applications do not seem to be gaining popularity or enhance productivity.

    And I think that how it will be. An evolution instead of revolution. Our monitors are still 2D devices afterall. Whatever 3D we throw at it is still faux 3D. People are just to ingrain w/ 2D on monitors to accept anything truly revolutionary, I think.

    Halcyon wrote:

    That's a nice change, but overall it's evolutionary and not revolutionary.  This will increase the attractiveness of the interface, but will not directly increase productivity.  There is no overwhelming reason to begin writing applications that have a 3D interface.

    And if you ask me, I think this is what the brain trust at MS is asking themselves also. How to make Avalon a must have. I don't know. Maybe just to accept Longhorn as the next Windows & go with that.
  • First of all I agree with everything you have said but I want to elaborate on one point:

    Minh wrote:
    And if you ask me, I think this is what the brain trust at MS is asking themselves also. How to make Avalon a must have. I don't know. Maybe just to accept Longhorn as the next Windows & go with that.


    If that was the case it would be a shame to concentrate on Avalon instead of WinFS which already has a killer app: to provide a unified way of sharing information between applications.  This is incredibly useful as the more applications we can use to work with our data, or even program our own applications to work with that data, the more control and capabilities we have.  The concept of the "application" disappears and is replaced by the notion of what "tool" we want to use to work with our data, we can start tying together data the way the term "multimedia" described working with sound, still graphics, and videos in computer programs.

    Avalon on the other hand is a solution looking for a problem.  Perhaps Microsoft have something up their sleeves here but if that's the case, nobody is in on Microsoft's vision, and we can't make that happen.  I just picture people using 3D as if it was their first time using filters in Photoshop, adding a lens flare and plasticizing everything in sight!

    In any case it was wise for Microsoft to support Avalon on Windows XP, application developers do not have to worry about supporting both a Windows.Forms and Avalon interface, if they do find a way to use 3D in their mainstream applications.
  • jBuelnajBuelna Never mistake motion for progress.
    WinFS isn't taking a backseat to Avalon (neither is Indigo.) 

    The keywords here are visibility and demand.  

    Visibility: The best way to garner interest in a product is to give your target audience something  really good to look at. Avalon is/was a perfect medium for getting developers, designers, and (eventually) consumers to start looking at the technologies they are working on.  You could say Avalon is Microsoft's "buckshot" technology.

    Demand:  Some of the biggest voices in the developer community are those of us who work on commercial software.  Our target is consumers.  If our app doesn't look as good as our nearest competitor's product we might as well be writing open source software.  I get excited when Microsoft shows me they're going to make it easier for us to make some pretty sweet interfaces.  (Hey, don't blame me.  Consumers make the rules.)

    That said...

    Like you, I'm really looking forward to the new messaging/communication layer (Indigo.)  I think it's the best thing coming.  Of course, I'm a big Don Box fan, so I that may be a biased opinion. 
  • MinhMinh WOOH!  WOOH!
    Halcyon wrote:
    If that was the case it would be a shame to concentrate on Avalon instead of WinFS which already has a killer app: to provide a unified way of sharing information between applications.

    There must be something so complex about WinFS. It's been a twinkle in Bill Gates eyes for, what, a decade now? My guess is it's not a technical issue, but how to maximize ROI & how it'd affect other products. Hell, if I can turn any folder into a SQL database, who'd buy SQL server?
  • I like it!!! but i have no money!!55555......
  • The Year Before Longhorn

    Anderson & Box

    'Twas the year before Longhorn, when all through the land
    Not a demo was given, not even one canned;
    The windows were stacked on each edge with such care
    In hopes that some user soon would be there;

    The coders were nestled all snug by their desks,
    While visions of ship-parties danced in their heads;
    And Chris with his pixels, and I with my SOAP,
    Had just failed to integrate despite our best hope,
    When out from the build lab there arose such a clatter,
    I sprang from my desk as working sets grew fatter.

    The queries against my old data did hang,
    And XAML-based markup from each window rang,
    The startup time of our new OS must be fixed
    As it seems as if running a 286

    When, what to my wondering eyes should they see,
    But a leadership team, with eight tiny VP,
    With a little old driver, so lively and trim,
    I knew in a moment it must be St. Jim.

    More rapid than eagles his coursers they came,
    And he whistled, and shouted, and called them by name;
    "Now, William! now, Eric! now, BrianV and Jonesey!
    On, BobMu! on PaulFle, on, Soma and JoePE!
    To the tech previews march! to the betas install!
    Now ship away! ship away! ship away all!"

    As bug counts that before the testers they fly
    When they meet with a DCR, mount to the sky,
    So up to the ship date the VPs they flew,
    With the Windows so shiney, and St. Jim was too.

    And then, with a reorg, there came such a hum,
    The prancing and pawing of each newly coined PUM.
    As I checked in my code, and was running my suites,
    A new ship date, St. Jim, says we all now must meet.

    He had scenarios, experiences, and use cases few,
    For the home user, aye, but MBAs too;
    A bundle of features he had thrown off the list,
    Just the basics, my boy, lest our ship date get missed.

    His eyes -- how they twinkled! his dimples how merry!
    And SteveB was pleased with our revenues less airy!
    With heads down we code on our features now prime
    To WinFS, yes, but perhaps not this time.
    With St. Jim now confident with this release,
    The rank and file coders may now code in peace.
    As VPs now focus on Blackcomb and beyond,
    Of Longhorn, St. Jim, remains oh so fond.
    And I heard him exclaim, ere he drove out of sight,
    "Happy Longhorn to all, and to all a good-night."

     
  • you know?
    you know? you know?
    lord ...
  • aToast wrote:
    I noticed that the demos were run in a windows xp environment - how do you I get started on coding avalon xaml? I've got the vs2005 beta but there doesn't seem to be a namespace called avalon or xaml. Please help I really want to get some hands on experience with Avalon.


    To add Avalon support to Windows XP (and XAML support to VS2005) you need to download the WinFX SDK. However, the SDK is not available to the public - meaning you require an MSDN Subscription of some sort.

    It weighs in quite at a decent ~260MB, but I'm sure someone could upload it to you if you supplied some sort of FTP details - if someone were so inclined.

  • I'm another XAML & XML newbie but could you make XAML understand the following syntax?

    <Viewport3D>
      <.Camera>
        <PerspectiveCamera ... />
      </.Camera>
    </Viewport3D>

    The . implies it's a property of Viewport3D (or the first matching object in the hierarchy that has the Camera property> and not a new object.
  • stewartsstewarts Cowbell Baby...
    So I am curious about the databinding capabilities of 3D controls.  Will I be able to databind information to a 3D object.  Let me be more specific.  Let's say I build a 3d Object in Avalon.  Let's say its an engineering application.  I would love to be able to have a 3D model of my part and bind information to different 3d objects within my control that could say, identify which areas break, have stress, etc... without having to save multiple iterations of the drawing to the database.

    Does that make sense?
  • dcwdcw
    Another excellent video!

    On the subject of xaml interfaces:

    I'm assuming that at some point we are going to see a set of standardised 3d form controls (textboxes, list boxes, etc) for use within Avalon.

    This video was great for showing a rather low level way to plot 3d primitives point by point, but most app developers will want to use much more abstract commands to set the interface.

    I think xaml will really shine when we can see how easy it is to build slick, 3d styled interfaces with a minimum of camera plotting needed.

    And a thought, how about making xaml forms backwards compatible with asp.net forms?
  • dcw wrote:
    I'm assuming that at some point we are going to see a set of standardised 3d form controls (textboxes, list boxes, etc) for use within Avalon.

    This video was great for showing a rather low level way to plot 3d primitives point by point, but most app developers will want to use much more abstract commands to set the interface.

    I think xaml will really shine when we can see how easy it is to build slick, 3d styled interfaces with a minimum of camera plotting needed.


    Something we didn't get a chance to explore in this 20-min slot is that in the CTP build the Viewport3D element works inside of VisualStyles.  This means that you can author a style that replaces the appearance of all instances of, say, <Button /> with a Viewport3D rending a Model3D that looks like, for example, a toggle switch.  You can even respond to PropertyTriggers so that the toggle switch animates to a flipped state on mouse down.

    The best part is that only the appearance is replaced.  You are still coding against an instance of a Button class so the code to handle the clicked event, etc. stays the same.
  • Halcyon wrote:
    Avalon on the other hand is a solution looking for a problem.  Perhaps Microsoft have something up their sleeves here but if that's the case, nobody is in on Microsoft's vision, and we can't make that happen.


    There is a lot more to Avalon than the 3D features we were demonstrating in this segment.  Avalon is a new client platform being built by the Windows OS team.  I happen to be part of the group delivering the new hardware accelerated graphics, animation, and composition features for this platfom and as such tend to focus on the sizzle and wow factor, but there is much more to Avalon.  Avalon adds Xaml, a new Control heirarchy with rich styling and layout features, a new application model with navagation framework, new input, automation and data services, and much more.

    However it is important not to confuse Avalon with the next generation Windows user experience (Aero).  Avalon is a development platform targeted at addressing a set of very pragmatic problems faced by Windows developers.  Avalon is not attempting to be a paradigm shift in the fundamental ways that humans interact with computers, although it does enable some very cool opportunities for developers to experiment with altenative UI systems.

    The scenarios that motivated us to build 3D features into the platform were primarily to add subtle 3D transitions and effects to primarily 2D content and data visualization.  There are other scenarios as well, such as a parts catalog where the user can freely rotate the parts to attempt to find a match with the component they are physically holding in their hand.
  • Mark Newell wrote:
    I'm another XAML & XML newbie but could you make XAML understand the following syntax?

    <Viewport3D>
      <.Camera>
        <PerspectiveCamera ... />
      </.Camera>
    </Viewport3D>

    The . implies it's a property of Viewport3D (or the first matching object in the hierarchy that has the Camera property> and not a new object.


    I had the same question the first time I saw this also.  Smiley

    Prepending the type name solves another problem for us.  Avalon's property engine allows one type to attach a property to another.  (Drew has a nice post on this topic.)  Potentially multiple types could attach a property with the same name.  Explicitly specifying the type of the owner disambiguates.

    If I remember correctly, there is also an issue with starting an XML element name with a dot.
  • i'm quite interested in the possibility of adding a depth-of-field property to the 3d viewport. The ability to render the depth-of-field effect is an important feature of any image synthesis algorithm.

    Depth-of-field is inherent to camera models with lens of finite aperture, in computer graphics the most commonly used camera model is the pinhole camera, where the lens is supposed to be infinitely small.
     
    The pinhole camera model produces images that are in sharp focus in any distance from the viewer. This can be a desired feature (e.g. for technical visualizations), but often a more realistic 3D image including depth-of-field is required.

    Post filtering algorithms suffer from intensity leakage, and algorithms that solve those problems are currently slow, especially for large amounts of depth-blur.

    The solution may be in pointbased graphics - an algorithm enabling fast depth-of-field rendering for point-based objects.

    Anyway I could talk about this stuff all night. Avalon is still in its infancy, who knows what its capabilities may hold.
  • Minh's point is something that has bothered me as well about Avalon.  His example had all the information necessary to build an object (at least, it looks to be, and I've written a deserializer that handles properties that way with a few caveats for explicitly declaring a concrete type), so why is there a need to specifically say that a child element is a property?  What else would it be?  If it is a child control and not a property, then why not structure it like so, as Controls is itself a property of ViewPort3D:
    <ViewPort3D>
       <Camera .../>
       <Controls>
          <Panel .../>
          <Button .../>
       </Controls>
    </ViewPort3D>

    ?
  • jBuelna wrote:

    The best way to garner interest in a product is to give your target audience something  really good to look at.


    The addition of 3D features to the user interface so far has been demonstrated in a very superficial manner.  It's true that you can dazzle clients with trinkets and baubles, but in the end they will be taking your business because of the product's practical application.  There are many examples of excellent looking and useful application interfaces in Windows XP.  Media Player, Office, and WinAMP, are examples of various stylish and functional interfaces possible with Windows XP, although it's clear that they have had to go beyond a normal implementation for creating a user interface.

    danlehen wrote:

    Avalon is not attempting to be a paradigm shift in the fundamental ways that humans interact with computers, although it does enable some very cool opportunities for developers to experiment with altenative UI systems.


    I see, that makes a lot more sense.  I'm glad to learn that the emphasis is on usability and not a lot of 3D controls haphazardly combined to create an application.

    danlehen wrote:

    However it is important not to confuse Avalon with the next generation Windows user experience (Aero).


    It's definitely important to have these guidelines in place to provide a consistant interface.

    danlehen wrote:

    There are other scenarios as well, such as a parts catalog where the user can freely rotate the parts to attempt to find a match with the component they are physically holding in their hand.


    For now the same results would be obtained with a streaming video of the object, or perhaps QuickTime 3D but would presumably not achieve the desired results, especially when trying to target the lowest common denominator.  Will Avalon's 3D component face the same challenges?

    But this brings up another point, it will definitely be useful in presentation software and will probably provide an avenue for MS to deliver new features in PowerPoint (as with Apple's Keynote).
  • jBuelnajBuelna Never mistake motion for progress.
    Hello stewarts I have to say... I like your icon.  It's the only prescription.
  • What about texture mapping of wmv9 files on my HD or streamed from a Win2003 server?
    Text mapping?
    What kind of effects on text will be available? Extrusion, animation, etc?

    This looks quite good if MS can provide all that!
  • nemisysnemisys You Know

    Bill Gates screwed up again. But this time, he wasn't alone. Such a shame for such a financially wealthy company. You guys need to get more quailty in your products for 7.1 Billion a year in R&D

    Bill Gates touts 'digital lifestyle,' despite technical bugs

    You have good applications, but you guys new a new Operating System.  You were always an applications company, not an OS company.  Don't like Linux? Contribute to the development and use the new and improved Linux kernel on Longhorn, eh? Mac has freeware Darwin BSD as it's kernel. Your NT-based stuff doesn't work anymore for the new age. Get over it. Sucks less than DOS, but still sucks!
  • g_braadg_braad My 15 kilobytes of fame
    Minh wrote:
    Just curious why it is necessary to have a <Viewport3D.Camera> element within the <Viewport3D> element. Why not just <Camera> ?


    Also, why defining a perspectivecamera within the viewport3d.camera. why not use elements within the camera itself to specify these settings. would this suggest there could be more than one camera?!? or just MS likes to use single tag elements. <flamebait />.

    EDIT: just saw the movie. the main idea is clear... single tag to create just using the constructor. and elements, my guess would be, are accessors.
  • jBuelnajBuelna Never mistake motion for progress.
    nemisys wrote:

    you guys new a new Operating System.


    bah.
  • Nemisys, YOU suck (monkeyballs)!
    It's obvious that you're not a developer, otherwise you would never choose the linux development and config hell over the powerful, user-friendly and well-integrated windows development experience!

    I sometimes have to administer and configure Linux servers for my job, and NOT FOR 7.1 BILLION US DOLLAR I would want to trade my windows OS for linux!!! (yes, I mean that)  Linux is so unproductive, you can't even install a graphical UI on a server (well you CAN install the nightmare called X, but it's very strongly advised NOT to do so (yeah, they even tell you that in the OS manuals!), as you probably know). Even if you are the nr. 1 linux guru in the world, you can never compete with a Windows Server admin that has a whole scale of graphical admin-, monitoring, and development tools at his disposal.

    And btw, Microsoft has very high-quality products! I don't know what planet you are from, but just compare the MS apps with open source alternatives for example... yeah it's just pityful: I looked at so many open source projects in my life, but few, VERY few, meet the quality of Microsoft's commercial applications. Just face it, 99% of open source / linux projects never get completed to a point where you would use the application on a day-to-day basis and can depend on, and their user interfaces (if you can even call them that way) are extremely UGLY and unintuitive! Microsoft applications on the contrary are used by millions of people every second of the day, and they get their work done, and very quickly because of the user-friendly and well-designed GUI's.
  • jBuelna wrote:
    WinFS isn't taking a backseat to Avalon (neither is Indigo.) 


    I guess you could say that WinFS isn't taking a backseat to Avalon because WinFS isn't even allowed to get in the car and was sent back to it's room for another couple years.

    I'm looking forward to Indigo but WinFS was the "pillar" of Longhorn I was looking forward to most. 

    Sad
  • I really like the new presentation framework of longhorn. After installing it and playing around. I really got the feeling that working with XAML is a lot easier than writing all that code.

    Is there an editor on it's way for creating XAML windows? That would be even better, since learning all the tags can be a bit of a hassle.

  • Shannon wrote:
    jBuelna wrote: WinFS isn't taking a backseat to Avalon (neither is Indigo.) 


    I guess you could say that WinFS isn't taking a backseat to Avalon because WinFS isn't even allowed to get in the car and was sent back to it's room for another couple years.

    I'm looking forward to Indigo but WinFS was the "pillar" of Longhorn I was looking forward to most. 

    Sad


    I doubt WinFS has taken a backseat at all.

    I think the requirements for WinFS were shifted, hence a recalculation of the actual schedule has occured.

    Here is a what I take to be a hint as to one of the reasons, but not the only reason why WinFS is being delayed.


    I think some of you might find what is mentioned in this article interesting as well (RE: WinOE).
  • svarukalasvarukala Every succesfull programmer Has Google Behind Him
    Hi,
       The demo makes me say that its Yet another Macromedia Flash MX. Haha, BUT I know its not!
      I liked it a LOT. So everything is written in XAML.
    How can one remember so many XML tags and design an UI. Drag and Drop wud b great.
      It wud have been gr8 if the demo has shown us some C# code used to handle simple events like button click.
     
    Overall, I will b starting apps in avalon asap !!

    Good Luck MicroSoft,
    Srinivas.
  • mr_blissmr_bliss Air

    I keep seeing interesting Avalon samples displayed in demos, but no corresponding source. Is the 3D app showing Xbox titles available and if not, why?

  • From the video I get the impression that this is overcomplicated for small task, and too limited for very large project...

    But the final result look cool.

    Stephan
  • MinhMinh WOOH!  WOOH!
    sschaem wrote:
    From the video I get the impression that this is overcomplicated for small task, and too limited for very large project...

    Not at all. It's going to be as flexible as WinForms is now. If using NotePad threw you off, it's only because they haven't finished the designer yet. I don't imagine NotePad being the main development tool.
  • This application looks very interesting!

    I have yet to program into a 3D application, maybe this program will spur me on.

    (thumbs up)
  • Horshu wrote:
    <ViewPort3D>
       <Camera .../>
       <Controls>
          <Panel .../>
          <Button .../>
       </Controls>
    </ViewPort3D>


    From an XML point of view, that is the obvious way to do it.

    Perhaps some examples of where it doesn't work?

    Douglas
  • Karsten Januszewskikarstenj Karsten Januszewski
    Re: Daniel Lehenbauer - Demo of Avalon 3D #
    Thursday, Jan 6, 2005 2:22 PM Reply Quote
    So I am curious about the databinding capabilities of 3D controls.  Will I be able to databind information to a 3D object.  Let me be more specific.  Let's say I build a 3d Object in Avalon.  Let's say its an engineering application.  I would love to be able to have a 3D model of my part and bind information to different 3d objects within my control that could say, identify which areas break, have stress, etc... without having to save multiple iterations of the drawing to the database.

    Does that make sense?

    Yes, you definitely can do databinding to properties of 3D elements in Avalon.  The databinding structure in Avalon has been designed to work with any Avalon control or visual.  For example, check out this article, which maps a 3D column to CPU usage: http://msdn.microsoft.com/longhorn/?pull=/library/en-us/dnlong/html/avalon2d-3d.asp


  • ShadedShaded Mean ugly geek with axe
    Thank you for posting this demo.  As a novice I particularly liked seeing the idea that nobody's code works right the first time, and with enough study how fast XAML(?) can be hacked out.

    And finally I have evidence to show to my users why even Microsoft still uses SOME CRTs.  Why do I get the feeling Daniel brought in the second and third monitor?

    Great insights, I feel like the bleeding edge is within reach - much closer than before anyway.

    Thanks again.
  • dotnetjunkie wrote:
    It's obvious that you're not a developer, otherwise you would never choose the linux development and config hell over the powerful, user-friendly and well-integrated windows development experience!


    LOL, obviously YOU have never coded in any other language than VB... Have you ever tried to compile VB on a machine other than MS Windows?!

    Btw, please, tell everyone how MS Windows 2003 is just that much better a server than Linux, please do... Tell everyone how MS Windows 2003 is just that much more secure than Linux to run a huge server that cannot have any downtime, ever... I guess that's why the majority of Internet servers that make up the Internet backbone run Linux. Yeah. They must all be insane or something or haven't been enlightened by the quality OS Gates has to offer with 0 downtime and 0 security issues. Btw, why would ANYONE want a GUI on their server? It's just a bunch of more compromisable apps to be exploited and gives hackers a great GUI to do whatever they want on your PC remotely.

    dotnetjunkie wrote:
    Just face it, 99% of open source / linux projects never get completed to a point where you would use the application on a day-to-day basis and can depend on.


    Have you ever heard of a little piece of software called Apache? What about Eclipse? These are only TWO open-source products that happent to be used by millions of people around the world. And guess what... Yup, most of the Internet sites you access are actually running on Apache web servers. Man, are you REALLY a developer? If so, please tell us where you studied so we can warn everyone NOT to study there.

    dotnetjunkie wrote:
    And btw, Microsoft has very high-quality products!


    What? What planet are YOU from? MS may make nice and easy to use apps. But they are far from perfect. The worst of all (prior to MS Windows 2000) was the MS OS called MS Windows. Guess why MS decided to ditch the WinX architecture after so many years of suffering instead of fixing the blasted thing? Must be because it was such a high quality product. Yeah. You're right again. Maybe you were born yesterday or maybe you just started using computers yesterday. But there was another MS OS we had to suffer with prior to MS Windows XP and that was DOS, Windows 1.x-3.x and Windows 9x. None which merit any qualifier near "high quality".

    Now, if you go back to school or decide to educate yourself a little more in the IT field, you'll discover that:

    a) MAC has the best looking and easier to use GUI and PC cases,
    b) MS makes good WYSIWYG IDEs and office suites and, now, some cool PC accessories,
    c) Games are more widely availible on MS Windows PCs because most of the people that have PCs use MS Windows, mostly because of a long history of MS Windows installations by PC resellers (a great marketing scheme actually, one that made Gates the richest man on Earth),
    d) Linux or it's cousin FreeBSD is the OS of choice for running a server because of it's long history as a network-capable OS and the features that entails: security, huge developer community, open-source initiative and extremely fast development cycles,
    e) Each programming language has it's advantages and disadvantages (that's why it's up to coders to choose the language that best fits the problem at hand) - VB being the language of choice for GUI-based apps targeted to MS Windows users (duh, it was invented by MS for MS Windows!), just like Cocoa Objective-C is for MAC OSX and C/C++ with the GTK (for Gnome) or the QT (for KDE) for Linux,
    f) Linux and FreeBSD are free! The price you pay is a little more learning on your part and patience and skill,
    g) Back to the subject of this thread, Avalon looks cool, even I, a Linux desktop/server user and mainly Java developer, am impressed. Even though XML automatically doubles the amount of code in a program (thanks to open and close tags) no matter what MS developers try to tell you, it seems simple to use and I like the fact that it sits atop .NET, thus blurring the line between rich-client and thin-client apps, all the while enhancing the user's GUI experience. If MS was wise (or maybe just friendlier business-wise), they could release it (and obviously some .NET stuff) for Linux and MAC OSX and be able to have everyone coding multiplatform apps with their language and paying royalties to use those frameworks. But, alas, MS wants everyone to use MS Windows, so I doubt they'll do that. I'll still find a copy of MS Windows somewhere to play with Avalon and .NET. And who knows... Maybe the people at MONO will eventually get an open-source openGL equivalent to the Avalon API... If you were really a developer, you would know by now that you should keep on open mind to always choose the best solution to every IT problem. And, unfortunatly, it doesn't always involve Microsoft.

    Just my 2 cents.
  • svarukala wrote:
    The demo makes me say that its Yet another Macromedia Flash MX.


    Yeah, hehe, I was having Macromedia Flex flashbacks too... Maybe they were "inspired" by Flex. Anyway, MS a background in software development user base as where Macromedia has a graphic designer user base... But Avalon has 3D rendering and Flex does not... So... I guess the scales are tilt in MS's favour on this one.  =)
  • NeoTOMNeoTOM OMG WTF REDESIGN
    aToast wrote:
    I noticed that the demos were run in a windows xp environment - how do you I get started on coding avalon xaml? I've got the vs2005 beta but there doesn't seem to be a namespace called avalon or xaml. Please help I really want to get some hands on experience with Avalon.


    It seems nobody's responded to you yet. Odd. Look around Microsoft (an MSDN download so popular it made the main Downloads page) Downloads for the Avalon November 2004 CTP.

    And, on the video, no offense, but, y'ow, y'ow, y'ow, y'ow, y'ow...
  • @Green_Ears:
    You seem to be really green behind your ears, because I checked your profile, and all the replies you ever made on Channel 9 are just trolling and bitching about Microsoft!!!
    Stop acting like a kid, you obviously have too much time on your hands.

    Although your post contains some valid points (especially the "unfortunately, it doesn't always involve Microsoft"), I have no time to reply to it now. Maybe I will later on, but you know the saying "time is money" and that's one of main reasons why Windows is actually cheaper than Linux or *BSD in lots of cases.
  • I'm currently busy with a 4th year project at the university of the freestate - south Africa. The project involves implementing avalon CTP with visual studio 2005 C#. I watched the video where Daniel Lehenbauer gave a presentation of some code that produces a 3d rectangle using <Viewport3D>. You've also probably seen the video.

    My problem is that I type in the exact same code presented in the video and all i get is a blank white screen. My windows xp style is blue, so that won't affect it. There are no errors. The project compiles properly. Could it perhaps be my graphics card (Geforce 2 MX 200 OEM)?

    One more thing. The problem above occurs when I don't animate the rectangle. However when I type the code word for word to animate the rectangle (as presented in the video) I get some strange error saying: "Unexpected PropertyComplexStart record in BAML stream. Baml stream may be corrupt." I've installed all the software in the right order and formatted my pc about a million times.

    Could someone lpease help me on this one, as i'm really excited about what features Avalon CTP could bring to my application.


  • I managed to get it to work without animation by using the following code exactly.

    <Window x:Class="AvalonApplication1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/avalon/2005"
        xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"
        Text="AvalonApplication1"
        >
        <Viewport3D>
            <Viewport3D.Camera>
                <PerspectiveCamera Position="0,0,5" Up="0,1,0" LookAtPoint="0,0,0" FieldOfView="45"></PerspectiveCamera>
            </Viewport3D.Camera>
            <Viewport3D.Models>
                <AmbientLight Color="White"></AmbientLight>
                <GeometryModel3D>
                    <GeometryModel3D.Material>
                        <BrushMaterial Brush="Red"/>
                    </GeometryModel3D.Material>
                    <GeometryModel3D.Geometry>
                        <MeshGeometry3D
                            Positions="-1,1,0 1,1,0 1,-1,0 -1,-1,0"
                            TriangleIndices="0 1 2 0 2 3">
                        </MeshGeometry3D>
                    </GeometryModel3D.Geometry>
                </GeometryModel3D>
            </Viewport3D.Models>
        </Viewport3D>
    </Window>

    ---
    I did try to do the animation however the box would display and not move. No errors occured however there was 1 warning:
    The element 'Viewport3D' in namespace 'http://schemas.microsoft.com/winfx/avalon/2005' has invalid child element 'Viewport3D.Camera' in namespace 'http://schemas.microsoft.com/winfx/avalon/2005'. Expected 'Viewport3D.Opacity, Viewport3D.Clip, Viewport3D.RenderTransform, Viewport3D.DataContext' in namespace 'http://schemas.microsoft.com/winfx/avalon/2005'.    C:\Documents and Settings\Xenon\My Documents\Visual Studio 2005\Projects\TestAvalonApplication\TestAvalonApplication\Window1.xaml    7    4    TestAvalonApplication
  • XAML and Microsofts attempt brought me back to the days of plotting vectors on an Apple IIe .  This is far to little and far to late.  A real 3D application can be created with 3DS, FLASH, and MDM rolled up into a nice executable with or without external components.

    Please Microsoft, your effort seems to be trying to force us Back 10 years or more.

    This will not fly with 3D content developers when I can create a network friendly 3d applicaiton for less effort.  The bottom line is that all the coding will increase cost of production and decrease quantity of production thus hitting developers for a double whammy.

    Make it cost effective for me to use it.
  • Fedor wrote:
    i believe that its a very handy tool......but i wonder there is a designer who help me to avoid all those lines of code?????



    Hi Fedor,

    When the video was posted, Sparkle Interactive Designer was not announced... Today I can say: you are right, designers will need tools to work on this rich platform.

    Sparkle lets designers build the UI side of an application. This includes 2D graphics, 3D models (+lights, etc), Video, Text, Layout behavior (important!), Data Binding, among other things... No hand-coding is necessary to achieve most UI tasks.

    Make sure to watch the hour-long Channel 9 video on Sparkle, as well as some more details on the official site, and my blog (I also link to other Sparkle folks there).

    Take care
  • I'm surprised no one asked... What's the story with the Amiga poster on Daniel's wall?

    And why revive the Boing demo?

    Big Smile


Remove this comment

Remove this thread

close

Comments Closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.