t's profileThomasGoddard.comPhotosBlogNetworkMore ![]() | Help |
|
|
November 07 Maya to XAML Goes Open Source!!Maya To XAML is now available to developers at large to help build its integration into Maya. If you're a 3D graphics developer or just looking to learn more about Maya or XAML, the project is now accepting requests to join so get on over to CodePlex and sign-up!! Download Microsoft Expression Interactive Designer to easily view and edit the XAML exported from Maya. August 09 Maya to XAML Updated for Maya 8An update for Maya to XAML is now available on Highend3D.com. It has basic support for animation and should work fine with .NET Framework 3.0 July CTP. See the ReadMe.htm file for detailed changes and specifics on animation. Hope you enjoy and please let me know if you have any feature requests or issues. July 17 The .Brain FrameworkA pioneer in mobile computing, co-founder of Palm (Graffiti), and intellectual conduit of the human brain for technology, Jeff Hawkins explains how memory works in the neocortex. He founded the company Numenta, and developed a memory model that works like the neocortex. The software architecture looks very solid and after reading the whitepaper and hearing his interview on NPR, I was compelled to share this with everyone.
About a year ago, after sharing the book about this technology (OnIntelligence) at a dinner conversation with family friends, one of the people at the table unbenkownst to me Dr. Harry Saal, explained that he was a member on the board of directors for the company Numenta.
The entire idea, that having a computer as good as a human brain, is a bit overwhelming and having made the connection with Haary, I feel like there has to be a future in this design. Take a look at the links and post your comments about it here. I am very interested in hearing what other people have to say about this new architecture. June 10 WinFX gets a new name, .NET 3.0!!!It’s refreshing to know that I've been working on .NET 3.0 for the last year! It's amazing and I love the new name, which is now much easier to explain. If you think about it, the switch makes perfect sense because the CLR is solid and does not require much in terms of core language feature development anymore. By naming new extended libraries the ".NET Framework 3.0", developers and users get a clear picture on where we are in terms of the core API and the adoption rate goes through the roof. This is going to make life much simpler.
If you havn't seen many of the cool features in WPF yet and would like to take an in depth look at a WPF application, check out this presentation from my colleague Darren David.
March 03 Maya to XAML February UpdateIt's finally here! I got around to creating a release build of Maya to XAML for the February WPF CTP. It's not quite feature complete but it's getting there. I added some helpful grouping features so that Maya groups are converted to a <ModelVisual3D> node and the Maya group's content is nested within the <ModelVisual3D.Content> tag. Transforms are also applied to ModelVisual3D, as well as individual objects, so you get the inherited transform behavior with each transform in it's original state.
The export options are updated so that you can specify export, or not, for normals, meshes, lights, cameras, etc... I added lights and cameras to the exportable objects. Animation is getting close to completion but I am swamped with higher priority features, like optimized mesh data.
Keep a look out for a future release that includes animation, XAML formatting, and a few other helpful features. Please let me know how I can improve on this plugin so that it's more useful as a tool for professional developers and designers. Enjoy!
February 06 Starbucks Howard Shultz and the Hear Music Media BarOn the left is Starbucks CEO Howard Shultz. I'm on the right. The store to the right is the store that just opened in San Antonio.
A man came in to the Starbucks on the Promenade in Santa Monica, CA, where I was working on the HP Media Bar. He was dressed in a pink oxford shirt and looked like a swanky business man. It was brought to my attention that it was The Man himself. I walked up to him and introduced myself as the Lead Solutions Architect from his partner company, HP, and explained that I had helped to get this store operating smoothly.To my surprise, he grabbed my hand in a hearty handshake and introduced himself as Howard Schultz, the CEO and Founder of Starbucks Coffee Company. He was interested to continue our conversation, get my thoughts on the project and ideas about the solution. He bought me a coffee and we began our conversation down the Promenade.
In turn, he answered some of my questions, like how he got his start in creating one of the largest and most profitable Global corporations. He has written a book on the story and says that he had been able to gather capital for the first Starbucks from money he raised at the JCC and his basketball chums. Although his idea was a success, he continues to in turn lend funds and be a Philanthropist and friend to the Jewish Community. Being entrepreneurial myself, I see the value in the lessons he shared that day.
The Hear Music Media Bar is a great vision that brings something new to retail. The Miami store opens next week, according to sources at Starbucks ;-). Look for more stores in places like New York. I think solutions like this which use vector based UI with a web services backend will continue to be the trend in kiosk solutions. January 11 Theeey're heeere... Mac & IntelI received an email from the apple Developer Connection today with some links on how to transition existing Mac OS X binaries to Intel based binaries. This means a bit more work for developers to support Mac OS X non-Intel based platforms and intel based platform.
This also brings up a point, even though Mac is releasing a very large update to Mac OS X, they are not branding it as entirely new operating system. This is a smart move from Apple, keeping the point clear that customers get the same look and feel in their applications, now with a faster and cheaper chipset. Here is the resource center from Apple, with some interesting links on the new Intel Core Duo Processor and developing for the new Intel platform.
http://developer.apple.com/transition/index.html I found this link to be pretty interesting: http://www.intel.com/cd/ids/developer/asmo-na/eng/255716.htm Note: The biggest difference in the core architecture is Endianess. December 29 WinFX December CTP ChangesA great article on changes in the December CTP.
http://msdn.microsoft.com/windowsvista/default.aspx?pull=/library/en-us/dnlong/html/introdecctp.asp And a first look at Visual Studio Code Name "Orcas" CTP WinFX Development - Code Name "Orcas" BTW... I will post an updated version of Maya To XAML soon. I am just wrapping up some new features so stay tuned! Thanks Karsten Januszewski and Michael Swanson! December 19 Visual Studio 2005 - Customer Excellence AwardThis makes it all worth while and it feels good to be recognized for working late nights to help improvide the product for everyone. I look forward to working with the Visual Studio Team on future product releases.
"You have been nominated to receive the Award for Customer Excellence. This award recognizes your extraordinary contribution to the Visual Studio 2005 product. All the best, S. Somasegar November 21 Maya to XAML November CTPThis update fixes some syntax in the XAML and has a couple minor changes to work with November CTP. Keep a look out for an update that comes with animation export and more! I havn't had a ton of time lately so I've had to work on it during my days off. Let me know if you have any other features that you would like to see and I will try to push them into the final build. - Updated for the November CTP WinFX Runtime
- New lines used for mesh data - Added named meshes and groups October 17 Exporting a Maya Model to XAML with Textures and MaterialsIt was a very busy weekend. I wrapped up the tutorial for exporting Maya meshes to XAML, with textures! I resolved some bugs in the plugin, and posted an update here:
http://www.highend3d.com/maya/downloads/tools/3d_converters/3782.html You can find the tutorial below at: http://www.highend3d.com/maya/tutorials/modeling/polygon/237.html Acknowlegements: A big thank you goes out to Michael Aarsvold, an employee for EA games, for helping to fix a couple bugs in the Maya To XAML exporter and for providing this cool bug model in this tutorial. Also, thanks to Brian Buchmann for helping me with some bugs in the Maya To XAML exporter.
This article illustrates the Maya To XAML plug-in, emphasing successful export of model data with textures. Please note that the plug-in is still in the development beta and still requires a small amount of cleanup before you have the ability to export model and textures. Future releases will incorporate settings which will allow you to specify these options during the export. Why export Maya to XAML? This will allow for 3 dimensional interactive user interfaces. It will not be long before all applications incorporate XAML in one aspect or another. This tool provides the designer with a bridge to the developer. The Original Model: The example below is a screenshot of the Character created in Maya. The left screen is the inverse kinematics and mesh (polygon) data. The right hand screen shows the skin of the object in open GL. Preparing for your Export There are a few parts to this model that will need attention before the export. You will first need to modify your source model. I recommend that you save a copy of your scene as the clean version used for exporting. In the scene above, skeleton transforms of the skin must be baked. Select the top level object group node, in this case "Bug", and choose the Skin > Detach Skin Options Button. Choose the settings shown below and click detach: You can delete your models skeleton after you've baked the skin. You might notice from the picture above, that the right and left side of the bug's body are identical. Instances of the left side objects were used for the right side of the body. That is to say, the same polygon point data is used for the right side as is on the left. The instances must be made into their own polygon points in order to be recognized. To do this, select the instanced node, duplicate the node, and then delete the instance. The Maya To XAML plugin does not currently capture instanced nodes, so only one side of the mesh will get exported, unless the instances are turned into their own mesh data, as mentioned above. Because the mesh instances were exact mirrors of their parent instance, their scale is -1 and their normals are flipped. The scale needs to be frozen on both groups and objects. To freeze the scale, select the groups and objects in the outliner and go to Modify > Freeze Transforms Options button. Choose the settings shown below and click freeze transforms: After the transforms are frozen, you can either leave the "opposite" attribute checked for automatic normal flipping, which will have the Maya To XAML exporter automatically flip the normals. This is located in the Shape Node>Render Stats>"opposite", or you can reverse the normals of the uninstanced, frozen mesh, by going to Modeling>Edit Polygons>Normals>Reverse. Before you export the model, you will need to go to Edit>Delete All By Type>History. This ensures that no extra mesh objects or other data is exported. Once you've deleted the history, you can choose "export all" from the file menu and specify XAML. Exportable scene data is saved to the xaml file. To view the xaml file, you can try installing the WinFX SDK September CTP, which comes with a presentation host, for viewing xaml files directly in Internet Explorer. Checkout the xaml version of the mesh below: As refinements are made to this plug-in, some of these tasks will be automatically handled by the exporter. In the meantime, I thank you for testing my product and I hope you enjoy. You can download the latest plugin at Highend3d.com Send any feedback or screenshots of cool stuff you've done or errors you've encountered. Glossary of Terms
October 14 Maya to XAML Exporter Updated (materials, textures, transforms)** If you recently downloaded the update for Maya to XAML, I just released a new update again to resolve normal and model direction.
Some Tips on Exporting: -Some mesh types need to be combined using Polygons>Combine, before exporting. -Removing groups will ensure that all of your objects are exported. -You should delete unused textures and materials before exporting. -Delete all by type history will also help to export the mesh properly. So it's been a week since I released Maya to XAML and I'm releasing an updated version already! The plug-in is now capable of exporting materials, textures, and transforms(rotate,scale,translate). I anticipate an updated release that includes animation in a couple weeks and a release before that, which will include lights and scene data. I have a new download location for you as well: http://www.highend3d.com/maya/downloads/tools/3d_converters/3782.html I will also have a 3d character demo from a game developer at EA games. Michael Aarsvold will be developing a rawkin character, with baked textures. Check back on my site in a few days for the demo/tutorial. October 07 Symbiotic Design: Maya To XAML ExporterSymbiotic Design: Maya To XAML Exporter Using Alias | Maya with Microsoft Windows Presentation Foundation* aka Avalon **** Updated For Maya 6, 6.5, and 7. Now includes textures, materials, and transforms! Download MayaToXAML Beta 2 If you receive an error opening the zip directly from the site or the file is empty or corrupted, try right clicking the link and saving the file to your desktop before opening. * this software is distributed freely, as is, with no warranties. Installing Maya To XAML
Using Maya To XAML
Note: If your mesh is NURBS, you will need to convert it to polygons. To convert to polygons, go to the Modeling view and select the mesh. In the Edit NURBS menu, click the Rebuild Surface Options button icon. Choose the Polygons option, in the Output Geometry section and click Rebuild. You can optionally combine all meshes in your scene, before exporting. This is suggested, for this version of the exporter, since models are not translated to new XAML scene locations during export. However if you need to apply materials to each object separately, you can translate the models in Visual Studio .net after exporting.
Here are some tests I ran for the exporter. I ran the export on an 18mb mesh and loaded it up in Visual Studio .net 2005. Here is the Maya view of the model. A huge thank you to Mike Fudge, an awesome 3d artist for EA Games. His works include The Matrix, NHL 2005, and more!
New Features
Future Features
Known Issues
A Quick History of Maya and XAML/WPF Better graphics is the singlemost important feature of a compelling UI, and upstart companies such as Wavefront and Apple realized this. Enter a surprising player in this field, Microsoft. Microsoft applications have not been known for their compelling user experience. Windows is a form meets function application, having none of the aqueous design like Mac OS X, for example. The dark horse in this race, Microsoft made a non- headline-making purchase of Softimage. Was this a peek into what they hoped to add to their user experience? I can only imagine that Microsoft's rationale for this was to fill the gaps with Avalon, their next highly anticipated Windows Presentation Foundation and Windows Forms predecessor. September 14 Starbucks HearMusic expanding coffee housesBack when I worked for HP Media Solutions - Consulting & Integration, I took part in the solution architecture and design of the Starbucks Hear Music media bar. It was an awesome project to be a part of. It's great to see it expanding into new markets in Miami and elsewhere. We don't have one here in Palo Alto yet but some day, I hope... >Click here to see it expanding... ![]() TV 2.0I don't know if any of you have heard the buzz about TV 2.0 these days and where TV is going but I am sure we all have a good idea. With my last post about sparkle, 3d, media, and programming you can infer many things about where the rich digital media platform is going. Everything from your photos to your favorite TV shows will all be available anytime and anywhere. But what is even more important to the user is how that information is presented and how easily it interoperates between applications.
So have you heard of Microsoft IPTV? You might want to take a look at it... It's the next generation of your TV/cable/internet/phone. It's a single, unified entry point, to everything from buddies all the way to TV shows. I have an extensive video editing background working with Media 100 on Apple and Strata 3D before it hit Windows. These tools combined with the detail of programming in C#, will give developers the abiliity to create content that reacts to user interaction and compells the user with every click. It's crucial to realize the potential of this new toolset. By embracing these technologies it no longer becomes a question of how well you develop applications but more about how much your users 'feel' your applications. Hence the word expression in this new product suite. Sparkle on the wayThe days of flash with a web services backend are over. The future is here. I remember back in the day when we created macromedia flash UIs like realtycomposer.com or club90.com and I had to convince everyone that the best implementation for the application is a web service.
Using vector was the bleeding edge, using .net was the bleeding edge. Now they've come together, as I knew they would. It's now more important than ever to maintain a single application schema across all tiers. By maintaining a single schema, each developer gains the type definitions without having to rethink the object. Using WinFS as the database, the object store, and the business layer, you can call different resources on demand and present them in a rich 3d UI.
It combines the workflow of adobe after effects, macromedia flash, and visual studio.net... It's the release of WinFS and WinFX that are going to change the way we develop our applications. But don't get me wrong, the applications built on top of these two technologies are already shaping the playing field and Sparkle IMO, is at the top.
If you have not seen it in action, you gotta check this out! You can skip past the chatting about 5 or 10 minutes in. If you haven't seen WinFS in action yet, you have to check it out! You can skip to the 14 minute marker.
And if you want to see an app built in WinFX - http://www.microsoft.com/max/ install it and I'll share some photos.
If this doesn't shock you, I don't know what will... September 10 Live from KeenMedia.netHere with the owner of KeenMedia.net and Sundial Music... Aaron Granick (KeenMedia.net), Aaron Mojo (SundialMusic.com), and Oshkar Pakash (Ohskar.com)... They finally finished their new studio which is pretty sweet! Lots of keen things and kewl stuff. We are spending this weekend working on business vision scope and brainstorming before Granick and Ohskar branch out in San Diego. Aaron Mojo gives us a preview of the new theme song, he wrote and sang, for a cartoon show on the WB called Johnny Test and the upcoming release of the game Shrek Super Smash up... Take a look at the live action studio: Download Movie ![]() You remind me September 09 My Handy Dandy SQL NotesThese are some notes that I took while studying for my MCSD final exam on SQL server 2000. There are some good things in here and some things that might not make sense until I organize them and put them into a nice little paper.
Linked Servers
Views
WITH CHECK OPTION for Views Prevents users accessing the view from editing the values in such a way that the data would not get selected by the view.
INDEXED VIEWS Allow data that is retrieved frequently to be retrieved faster and must use ansii nulls option on. A clustered index must be created first.
UNION Should be used to join two tables in a view from different disparate databases and order by must be specified outside of view. COALESCE selects one or the other To compile queries remotely use the OPENQUERY function, only to be used with linked servers.
OPENDATASOURCE in FROM can be used to access non-linked remote servers in T-SQL by passing all params when the function is called.
OPENROWSET is used just like OPENDATASOURCE to query data remotely.
Complex Updates
Inserts
**DELETE WITH JOIN EXAMPLE** Delete odFROM [Order Details[ od JOIN Orders o ON od.OrderID = o.OrderID WHERE DATEPAET (yy, OrderDate) =1996 Cursors
Concurrency Control
(TWO METHODS FOR CHECKING CONCURRENCY)
Pessemistic (guaranteed transaction) ... All changes will succeed
Database APIs
When to use default resultset vs. cursors
Working with XML
AUTO
EXPLICIT
Extracting relational data
Programming Business Logic Transactions
Transaction Modes
> SET IMPLICIT_TRANSACTIONs ON will prompt you to commit transaction when disconnect occurs
Deadlocks
Efficient Transactions
Error handling
Stored Procedures
Triggers Special type of stored procedures > Trigger Mechanics
Tuning and Optimizing Data Access
SQL Profiler
Index Tuning Wizard
Statistics
> Most optimization happens at the client
Using Indexes to Optimize Data Access
> Fill factor
> Indexing strategies
Designing database security Logins
Configuring logins
Server Roles
Database User Accounts
sp_grantdbaccess
Database Roles
Managing Permissions
Effective permissions
Roles permissions take precedence over user level permissions Designing Security Solutions
Ownership Chains
Security Solutions
Security Solutions2
Binary trees of lifeIn the adventure of object oriented programming, we often find ourselves in situations like the famous character Neo, from my favorite movie "The Matrix". You are working in your everyday life, oblivious to the things around you and how they actually work, and then you find some tidbit that really makes you think. It connects the puzzle and how oddly it connects, too.
There are two major players in the world today... data and logic. It's how we represent our data that really makes it workable in ways we never imagined. Its the rules that connect the data that make it do the things, represent the things, make up the software, connect the systems, and bind the data into useful representations. This post is an exploration on the connection of data, the best way to represent data, and the way I perceive data. Lets jump right in and take a look at a simple example of a binary tree: ![]() In the picture above, the root node of the tree is four. Four could corrispond to a specific object or memory address in our application. In fact, all of the numbers in the tree could represent keys with pointers to the actual records or data persisted in storage. A binary search tree provides an algorithm and dataset organized in such a way, that it splits the time it takes to find a specific element in the tree in half, for each traversal of a node in the tree. This is also referred to as log2(n) in Big O notation, or sublinear because the running time is less than linear running time. The binary tree above is a balanced binary search tree. Neither the left or the right side of the number four, root node, are ever 1 less or greater than the other. That is to say, if we were to add a nine node to the right child of node eight and another right child of node nine, the balance of the binary tree would be lost. The less balanced the binary tree, the less optimal the running time becomes. At worst, the running time for the binary search tree becomes linear. Linear running times are found in unsorted arrays, unsorted linked list (searches, inserts, delets), or contiguous data that requires CRUD functionality. We find this kind of efficiency useful for reducing the running times in graphics applications and games. In a game, each frame must perform a set of events, or check a set of values against objects that exist in the current frame or current level of the game. If you have ever done graphics development, you know that as the number of objects in the scene or canvas grows, the running time of each frame is increased. Binary search trees are also helpful in determining which objects in the scene are culled. Check back as I continue my small series on binary search trees and provide credit to the amazing minds behind it. September 05 Perl:: Get input from a command lineIt's a trivial task in C# but in Perl you have to understand what's required and what to call to get the input. After you understand what's required, it's pretty simple.
#< -- thats a comment #We have to use Win32::Console instead of Term::ReadLine #Term::ReadLine has issues on windows systems and will fail with "SetConsoleMode failed in ReadKey"
use Win32::Console; #this is used to take hash values and convert to standard strings. #This will output some text to the terminal #This is where the variable cool is set to the input of the user. #That's it we can print the variable. print $cool |
|||||||||||||||
|
|