<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8378574</id><updated>2011-09-23T11:36:02.388-04:00</updated><category term='qwaq mirimar intel'/><category term='apache'/><category term='BBC'/><category term='scripting'/><category term='chief innovation officer'/><category term='business'/><category term='teller machines'/><category term='Palm Pixi'/><category term='javascript'/><category term='collaboration'/><category term='walkthrough'/><category term='smalltalk'/><category term='Qwaq Forums'/><category term='Collada'/><category term='interoperability'/><category term='Croquet'/><category term='software renderer'/><category term='XML'/><category term='Teleplace'/><category term='open source'/><category term='conference'/><category term='Islands'/><category term='scratch'/><category term='lua'/><category term='Ford'/><category term='Sync'/><category term='lockheed martin'/><category term='Internet2'/><category term='Classes'/><category term='Alan Johnston'/><category term='iPhone'/><category term='3D'/><category term='David A. Smith'/><category term='Virtus Walkthrough'/><category term='Squeak'/><category term='wall street journal'/><category term='realtime'/><category term='colony'/><category term='ICE'/><category term='virtual worlds'/><category term='alan kay'/><category term='Qwaq'/><category term='911'/><category term='Road Map'/><category term='Nemelka'/><category term='Second Life'/><category term='avatars'/><title type='text'>Croquet</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default?start-index=101&amp;max-results=100'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>112</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8378574.post-993250739901223738</id><published>2010-08-19T21:02:00.000-04:00</published><updated>2010-08-19T21:02:28.661-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nemelka'/><category scheme='http://www.blogger.com/atom/ns#' term='collaboration'/><category scheme='http://www.blogger.com/atom/ns#' term='Teleplace'/><title type='text'>New Teleplace CEO</title><content type='html'>Tony Nemelka has just been named CEO of Teleplace and I couldn't be more pleased. I have had a number of discussions with him and some of the exceptional people he is bring with him since he started working with the company, and I am really impressed with his vision for the direction for the business and the clear focus he has on customer value. I am very proud that the company has been able to attract someone of Tony's caliber to be the CEO. No question that the company was ready for this next step. Greg Nuyens did an exceptional job positioning the company technically - Teleplace is the best collaboration platform in the world today, by quite a wide margin. Now it is time to leverage that technical advantage into a market advantage as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-993250739901223738?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/993250739901223738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=993250739901223738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/993250739901223738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/993250739901223738'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2010/08/new-teleplace-ceo.html' title='New Teleplace CEO'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-3273190417116108919</id><published>2010-03-27T10:18:00.004-04:00</published><updated>2010-05-01T10:26:29.741-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chief innovation officer'/><category scheme='http://www.blogger.com/atom/ns#' term='lockheed martin'/><title type='text'>Chief Innovation Officer</title><content type='html'>About three months ago, I joined Lockheed Martin STS as their Chief Innovation Officer. I have been wanting to pursue a project that was quite different from the direction that Teleplace has been going, and after about a year of discussion, it was clear that the direction I wanted to go and what Lockheed Martin was looking for fit extremely well.&lt;br /&gt;&lt;br /&gt;It is too early to talk about what I will be doing, but if it works the way I think it should, it could have some very big results and may have an impact on everyone someday. I can tell you it is a very different world inside of a big company - there is still a requirement to be entrepreneurial and sell the ideas, but once a big company like this gets behind it, the resources available are simply amazing. &lt;br /&gt;&lt;br /&gt;More to come for sure...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-3273190417116108919?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/3273190417116108919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=3273190417116108919' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/3273190417116108919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/3273190417116108919'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2010/03/chief-innovation-officer.html' title='Chief Innovation Officer'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-7179993793146449486</id><published>2010-02-04T23:25:00.003-05:00</published><updated>2010-02-05T00:36:20.920-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Palm Pixi'/><category scheme='http://www.blogger.com/atom/ns#' term='Ford'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Sync'/><title type='text'>Palm Pixi Rox</title><content type='html'>I just bought a new phone, and it wasn't an iPhone, but it is still very cool. I have been planning to buy an iPhone as my next communication device - all my friends have one. I am very glad that they no longer feel the urge to demonstrate how cool they are by showing me some stupid picture or new app on their iPhone - except for Frank, of course. &lt;br /&gt;&lt;br /&gt;So why didn't I buy an iPhone? Well, it is a bit complicated. My family has five phones with Sprint. I actually had a Rumor, which is a pretty good texting phone, but not much use for anything else. I was reasonably happy with it, though the blue-tooth quality was pretty poor. It was not too useful in California - unless you are married to the governator. Sprint is pretty good for quality of reception, but I always thought the selections of their phones sucked. A few years ago, I decided I needed a Blackberry and tried to upgrade at Sprint. Believe it or not, they would not sell me one. They only sold them to businesses. Morons. I did buy a Blackberry from someone else and carried two phones. I dropped the Blackberry after a while, because I realized I could almost always check my email with my MacBook, even when I was traveling. &lt;br /&gt;&lt;br /&gt;So why the new phone? Somehow, I must have either dropped or stepped on my Rumor. I had made two or three phone calls earlier in the day from my office. I put it in my pocket and went downstairs to talk to my wife and while I was talking to her I received another call. I took the phone out and pressed the answer button and then saw that it had a big crack in the center of the screen. Worse, the voice quality on the other end was totally garbled - like some sort of electronica convolution filter. It was basically toast. I needed my phone to work this week, as there are many things going on in my life (that I will be writing about soon) so whether I liked it or not, I had to go visit the Sprint store for a replacement.&lt;br /&gt;&lt;br /&gt;When I got there I had a few nice surprises - first the selections of phones was not terrible. In fact it was getting interesting. No iPhone of course - this wasn't AT&amp;T, but they had an Android phone and yes, they finally were offering Blackberries to real people, and a they had the new Palm WebOS-based phones. I was interested in the Google phone, but a friend of mine had just bought one and was trying to take some pictures in the bright sunlight. The screen was unusable. Also it was kind of big and bulky - sort of like what the old Soviet Union might build if they were trying to make an iPhone knock-off. &lt;br /&gt;&lt;br /&gt;What really caught my eye was the Palm Pixi. It is the smaller and slightly cheaper brother to the Palm Pre (which had the very strange commercials last year). I like small phones, as I already carry too much hardware in my pockets. The Pixi was actually smaller than my old Rumor (which really wasn't that small) and it was a real smart phone. Better yet, Sprint was offering a hell of a data plan where my family's monthly costs, which did not include data, would actually drop with the new plan which did include it. The phone was $200 with a $100 rebate - including a new two year contract, but now, even that was pro-rated. Sprint is definitely getting aggressive.&lt;br /&gt;&lt;br /&gt;So now the review of the Pixi. In a nutshell, it is terrific.&lt;br /&gt;&lt;br /&gt;Here is a list of pros followed by cons:&lt;br /&gt;&lt;br /&gt;Pros&lt;br /&gt;- Setup was trivial. The guy at the Sprint store did most of the work and I had a working phone with all my contact info when I walked out.&lt;br /&gt;- The phone perfectly integrates with Gmail, which is my main email connection these days. It pulled all of my contact info into the phone and I was immediately reading the most recent emails.&lt;br /&gt;- It supports Google Calendar, which my wife and I share. And it issued calendar alerts. Very nice.&lt;br /&gt;- It is quite small, but the built in thumb-keyboard is quite usable. It took a little getting used to, but it works fine and has a nicer feel than my Blackberry or my earlier RIM device. I do love the size - it is quite thin and feels very nice in my hands.&lt;br /&gt;- Sprint's wireless network performance is great. I was at a Starbuck's with a friend of mine and wanted to show him a video I had posted to YouTube. He tried to access it with his iPhone, but I had it running on the Pixi well before he even had an connection. He never did get it to work, but he was using the AT&amp;T network and not the local Wi-Fi. &lt;br /&gt;- Web browsing works pretty good, given the size of the screen. Certain sites, like Boing Boing are excellent, because they have a mobile version automatically loaded. Amazon was a bit crappy, surprisingly.&lt;br /&gt;&lt;br /&gt;Cons&lt;br /&gt;- The text is too small, especially for us old guys.&lt;br /&gt;- The sound volume is not quite loud enough, even with it maxed out.&lt;br /&gt;- When I called my mother, she said the sound quality on her end was echo-y, like I was far away from the phone.&lt;br /&gt;- I tried to read a PDF document using the included Adobe reader app, but it didn't word wrap, so this was basically a lost cause. Seriously - if I zoom into a document using PDF, you really need to provide an option to wrap the text so I don't have to scroll left and right.&lt;br /&gt;- Camera quality is poor. Good enough for a random picture now and then, but it won't replace my Casio Exilim.&lt;br /&gt;- Takes a long time to charge (maybe 4-5 hours?)&lt;br /&gt;- Charge lasts about 3 days with use. Since it was a new phone, I probably did more with it than I normally will in the future, so this probably caused the battery to drain quickly. &lt;br /&gt;- Some apps re-orient based on the orientation of the phone. Others don't.&lt;br /&gt;- It really needs a search app that has instant access.&lt;br /&gt;&lt;br /&gt;Overall, this is a great non-Android Google phone. It is really nice how cleanly and easily it interfaces with my Google life. And I love the size. It is really quite elegant. It has only been three days now, so let's see how it holds up over the next few months.&lt;br /&gt;&lt;br /&gt;As an aside, I had a rental car last week - a Ford Flex. This included the Microsoft Sync software. I might comment more on this later, but short answer - it was terrible. I actually liked the car (more of an SUV actually), but this software was really opaque. After linking it to my now sadly demised phone via BlueTooth I could not figure out how to get to the phone interface to make a call. I nearly had an accident trying to figure this thing out. I never did figure out how to use the built-in GPS for directions. Luckily I had my Garmin Nuvi with me. Sync is Bad Bad Bad. If anyone from Ford is reading this - I did like the Flex, but will never buy anything with Sync installed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-7179993793146449486?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/7179993793146449486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=7179993793146449486' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/7179993793146449486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/7179993793146449486'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2010/02/palm-pixi-rox.html' title='Palm Pixi Rox'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-6850884555607549101</id><published>2009-11-06T19:05:00.004-05:00</published><updated>2009-11-06T19:22:15.748-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='alan kay'/><category scheme='http://www.blogger.com/atom/ns#' term='software renderer'/><category scheme='http://www.blogger.com/atom/ns#' term='ICE'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtus Walkthrough'/><category scheme='http://www.blogger.com/atom/ns#' term='realtime'/><category scheme='http://www.blogger.com/atom/ns#' term='Croquet'/><title type='text'>Virtus Walkthrough</title><content type='html'>I just posted the video I made of Virtus Walkthrough. I created this in 1990 with David Easter and Mark Uland. I am actually demonstrating Virtus 4 here. Scott Haynes was responsible for this version, and I think it is the best version of Walkthrough we ever did. It was also, unfortunately the last. The overall design and interaction is almost identical to the original 1990 version, though. This is using a software renderer that I wrote and was greatly enhanced by the team led by Greg Rivera. It uses portals extensively, and though you won't notice it, it does not actually have a z-buffer. The objects are sorted using a kind of BSP thing I did that is extremely fast. I am actually running this on Parallels on an older Macbook, and it feels faster to me than Sketchup 7.1, which I run native. But of course, considering that this had to run in real time on sub-20 mHz 68010 and 68020 machines, this had to be pretty damn fast to work at all.&lt;br /&gt;&lt;br /&gt;This is the system I first prototyped the virtual collaboration space in that I showed to Alan Kay. This led to the development of ICE (see previous post), OpenSpace, the Croquet Project, and Teleplace.&lt;br /&gt;&lt;br /&gt;Virtus Walkthrough won many awards, including the very first Breakthrough Product of the Year from MacUser Magazine, and the PC Computing Best Drawing Program, where we beat Adobe Photoshop. &lt;br /&gt;&lt;br /&gt;Here is the demo:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/RKYMZzGPSjM&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/RKYMZzGPSjM&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-6850884555607549101?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/6850884555607549101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=6850884555607549101' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/6850884555607549101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/6850884555607549101'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2009/11/virtus-walkthrough.html' title='Virtus Walkthrough'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-8656758330571971231</id><published>2009-11-01T15:30:00.003-05:00</published><updated>2009-11-01T15:33:26.476-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='walkthrough'/><category scheme='http://www.blogger.com/atom/ns#' term='colony'/><title type='text'>Colony Walkthrough</title><content type='html'>Searching through my digital archives, I found the following walkthough for "The Colony". Not terribly useful anymore, but it will give you an idea of the depth of the game. This walkthrough was written 20 years ago...&lt;br /&gt;&lt;br /&gt;"The Colony" Revealed&lt;br /&gt;&lt;br /&gt;Copyright © 1989 by David A. Smith&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GETTING STARTED&lt;br /&gt;&lt;br /&gt;Where am I?&lt;br /&gt; You are on the DAS cruiser on the bridge.  You have just crash landed  on the colony planet 5-DELTA-5. &lt;br /&gt;Why is everything so dark and nothing seems to be working?&lt;br /&gt; The ships reactor is out; you need to turn on the emergency power.&lt;br /&gt;How do I use the console?&lt;br /&gt; Run into it.&lt;br /&gt;Why does the right button of the bridge console blow up the ship?&lt;br /&gt; That is not its intention.&lt;br /&gt;How do I turn on the emergency power?&lt;br /&gt; Press the left button on the bridge console.&lt;br /&gt;I can't open the airlock.&lt;br /&gt; You must unlock it using the decoder and the console directly to the  left of the airlock.  Don't forget to press the "E" (Enter) key after  entering the code.  Unlocking it does not open it.  You still need to  press the +/- button on the airlock door.&lt;br /&gt;When I go out the second airlock door I die.&lt;br /&gt; Did you close the first door behind you first?&lt;br /&gt;How do you close the inner door once inside the airlock?&lt;br /&gt; Simply turn around and run into the airlock door again (the one you  just came through) and press the +/- button.&lt;br /&gt;Yes, I closed the inside airlock door.  I still die.&lt;br /&gt; Are you wearing your power spacesuit?&lt;br /&gt;How do I put on my power spacesuit?&lt;br /&gt; Use the power spacesuit installer.&lt;br /&gt;What is that?&lt;br /&gt; That is the strange looking device you see as you come down the  stairs.  Run into it and set your armor and weapons power levels.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I die when I go into the room on the lower level just to the left of the stairway.&lt;br /&gt; Don't go in that room, it is a holding cell for prisoners (you are a Space  Marshall remember?), you were standing on an electrified security  grid on the floor.&lt;br /&gt;What's wrong with the spaceship?&lt;br /&gt; The reactor core has been damaged.&lt;br /&gt;How do I fix the reactor?&lt;br /&gt; You need to visit the colony first.&lt;br /&gt;&lt;br /&gt;ON THE PLANET SURFACE&lt;br /&gt; &lt;br /&gt;What are the pyramid shaped objects all over the planet surface?&lt;br /&gt; These are "natural occurring rock formations".&lt;br /&gt;How many 'bug' creatures are there?&lt;br /&gt; There are an infinite number of creatures on the surface of the planet.&lt;br /&gt;I keep getting killed when I fight them.&lt;br /&gt; Then don't fight them.&lt;br /&gt;They chase me.&lt;br /&gt; You can run faster than they can.&lt;br /&gt;Even if I don't fight the creatures I do not last very long on the planet surface.&lt;br /&gt; See Power Spacesuit.&lt;br /&gt; &lt;br /&gt;FINDING THE COLONY&lt;br /&gt;&lt;br /&gt;Where is the colony?&lt;br /&gt; It is outside of the ship.&lt;br /&gt; It is underground.&lt;br /&gt; The entrance looks like a large box with a door in it.&lt;br /&gt; It is not far.&lt;br /&gt; You can see both the colony and your spaceship when you are directly  between them.&lt;br /&gt; Go north-east from the space ship.&lt;br /&gt;&lt;br /&gt;POWER SPACESUIT&lt;br /&gt; &lt;br /&gt;I found the power spacesuit installer but I can't get it to work. Nothing happens when I run into it.&lt;br /&gt; The emergency power needs to be on before the installer will work.&lt;br /&gt;Why do I die so quickly, even when I use the heavy armor and weapons?&lt;br /&gt; The power spacesuit drains your energy in proportion to the level  you set it at.  The heavier your setting the faster the drain. When all  of your energy is gone you are dead.  &lt;br /&gt;What is the meaning of the power suit scale on the left of the screen?&lt;br /&gt; This indicates the energy levels of you weapons, armor and life force.   When the life force level reaches zero you are dead.&lt;br /&gt;What kind of scale does it use?&lt;br /&gt; It is logarithmic.  For example, the lowest bar is equal to 1, then next  up is 2 or more, then 4 or more, then 8,16,32,...&lt;br /&gt;&lt;br /&gt;INSIDE THE COLONY&lt;br /&gt;&lt;br /&gt;I found the colony but when I try to open the inside airlock door I died.&lt;br /&gt; See GETTING STARTED.&lt;br /&gt;Once inside the colony, just past the airlock, there is a door that is always blocked.  What's on the other side?&lt;br /&gt; You don't need to know yet.&lt;br /&gt;I keep running out of energy, how can I raise my energy levels?&lt;br /&gt; Eat the small "eggs" of the creatures.  These are energy pods that will  hatch later but when they are in the dormant state your power  spacesuit can absorb the energy they contain.&lt;br /&gt;What are these creatures inside the colony?&lt;br /&gt;  Search for the Conference Room on level 1.  There you will find  some interesting information on the different alien types and their  capabilities.&lt;br /&gt;&lt;br /&gt;EGGS&lt;br /&gt;&lt;br /&gt;Where do the "eggs" come from?&lt;br /&gt; From the creatures.  They are actually dormant creatures that may  "hatch" at any time.  Note that most creatures can lay eggs but  only of  the same type.  The queens can lay any type of egg.&lt;br /&gt;What are they good for?&lt;br /&gt; Your power spacesuit can actually absorb the energy they contain, at  the same time destroying the creature that would normally be  hatching from it.  Note that different eggs help your power ratings in  different ways, compare the eggs shapes to your power suit display.&lt;br /&gt;&lt;br /&gt;REACTORS&lt;br /&gt;&lt;br /&gt;How do I fix the reactor on the spaceship?&lt;br /&gt; The reactor core is damaged, it needs to be replaced.&lt;br /&gt;Where can I get a new reactor core?&lt;br /&gt; Somewhere inside the colony.&lt;br /&gt;How do I get to the reactor core?&lt;br /&gt; You need to lower the core from the ceiling. Use the console in front of  the reactor.&lt;br /&gt;What are the codes I need to enter at the console to lower the reactor cores?&lt;br /&gt; The code for the ship reactor is inside a desk on the ship.&lt;br /&gt; The code for the colony reactor is inside a desk in the colony.&lt;br /&gt;Where is the code for the colony reactor?&lt;br /&gt; On level 1.&lt;br /&gt;I tried to retrieve the colony reactor core and tote it to the ship.  Succeeded admirably. But when I lowered it to the floor prior to switching it with the ship's reactor core, guess what?  It disintegrated.  Poof!  No more colony reactor.&lt;br /&gt; The only place that you can put the reactor core without breaking it is  inside a reactor (either one).&lt;br /&gt;Then how do I put the colony reactor core in the ship's reactor?&lt;br /&gt; You need to have already taken out the ship's reactor core!&lt;br /&gt;&lt;br /&gt;TELEPORTERS&lt;br /&gt; &lt;br /&gt;Where are the teleporters?&lt;br /&gt; On level 4 and in Lab A.&lt;br /&gt;I can not get any of the teleporters to work, what do I need to do?&lt;br /&gt; Keep looking for other teleporters.&lt;br /&gt;I found the teleporters in Lab A but can't move them anywhere to make use of their capabilities.&lt;br /&gt; You need a forklift.&lt;br /&gt;What is the order of the teleporters in Lab A?&lt;br /&gt; 1 to 2, 2 to 3, 3 to 4, and 4 to nowhere!&lt;br /&gt;How are the teleporters going to help me play the game?&lt;br /&gt; If you manage to get them to strategic locations, you will be able to  make many effortless trips (such as between your ship and the  colony) with the various objects you need to successfully complete the  game.&lt;br /&gt;If I'm inside the forklift and try to enter a teleporter, the forklift thinks I want to lift the teleporter. &lt;br /&gt; Try picking up something else (a box is usually handy) with the  forklift before entering the teleporter.&lt;br /&gt;If I'm in the forklift and want to pick up a transporter WITHOUT entering it...how is that done?&lt;br /&gt; Teleporters and forklifts work this way:&lt;br /&gt;&lt;br /&gt; 1. You can enter a teleporter if you are not inside a forklift.&lt;br /&gt; 2. If you are in a forklift and you are carrying an object (such as a&lt;br /&gt;    box) you will also enter the teleporter.&lt;br /&gt; 3. If you are not carrying any objects with the forklift you &lt;br /&gt; will pick up the teleporter with the forklift.&lt;br /&gt;&lt;br /&gt; The reason for this is simply that the user interface was much simpler&lt;br /&gt; to build and understand.  The alternative was to have the user answer&lt;br /&gt; a dialog about whether he/she wished to enter or lift the teleporter.&lt;br /&gt; I did not want to have a dialog box anywhere in Colony (except for &lt;br /&gt; saving games of course).  This was to keep the game as natural as &lt;br /&gt; possible.  In this case the forklift is allowed to make the decision&lt;br /&gt; for you.&lt;br /&gt;&lt;br /&gt; Similarly,  a number of things are the way they are to make the game  players life easier.  I would have preferred all  doors to be opened  AND closed by the game player but this gets tedious quickly.  So the  compromise is the airlock.  A number of things are the way they are  to make the game players life more miserable but that is the nature of  these things.&lt;br /&gt;&lt;br /&gt;FORKLIFT&lt;br /&gt; &lt;br /&gt;Where is the forklift?&lt;br /&gt; In the colony.&lt;br /&gt; On level 5.&lt;br /&gt; In storage room 5.&lt;br /&gt;What is it good for?&lt;br /&gt; It can carry large objects.&lt;br /&gt;What large objects?&lt;br /&gt; Teleporters, cryogenic chambers, boxes,  and reactor cores.&lt;br /&gt;I have trouble getting out of the forklift sometimes.&lt;br /&gt; The forklift will not let you exit if there is an object directly&lt;br /&gt; behind you (something about not allowing two objects to occupy the&lt;br /&gt; same space at the same time).  It will also not allow you to exit&lt;br /&gt; into a wall.  This may seem slightly random until you start considering&lt;br /&gt; exactly what is around you.  Remember this game takes place in 360&lt;br /&gt; degrees.  Just because you can't see an object does not mean that it is  not there.&lt;br /&gt;I have trouble dropping objects sometimes.&lt;br /&gt; The forklift drops the object in the square you are in.  Since only one  object can occupy a square, you (and the forklift) get pushed back a  square.  However if there is something behind you ( wall, post, alien,  etc), it appears to drop it but doesn't.  You can tell because the forklift  thinks it is still carrying the object (which it is) and the object is not  sitting in front of you ready to be picked up again.&lt;br /&gt;The forklift can not go upstairs. &lt;br /&gt; That's right.&lt;br /&gt;How do I get the forklift up the stairs to the colony airlock?&lt;br /&gt; There is another way to the airlock that does not use stairs.&lt;br /&gt;Can the forklift go outside?&lt;br /&gt; Yes.&lt;br /&gt;Does the forklift protect me from the creatures shooting?&lt;br /&gt; Not at all, in fact you can not even shoot back while inside!&lt;br /&gt;&lt;br /&gt;CRYOGENIC CHAMBERS&lt;br /&gt;&lt;br /&gt;How many cryogenic chambers are there?&lt;br /&gt; There are 6 of them.&lt;br /&gt;Where are the cryogenic chambers?&lt;br /&gt; Level 1 - 1&lt;br /&gt; Level 2 - 0&lt;br /&gt; Level 3 - 1&lt;br /&gt; Level 4 - 2&lt;br /&gt; Level 5 - 1&lt;br /&gt; Level 6 - 1&lt;br /&gt;Can you be a little more specific?&lt;br /&gt; The first cryogenic chamber is  in the security area on level 1.  Be careful of the security grid as you make your way to it.  It is in the upper part of the level 1 map.&lt;br /&gt; The second chamber is on level 3.  It is actually near the stairs located in the upper right hand corner but you need to go through apartment 33 to get to it.  It is through the door behind the dining room table.&lt;br /&gt; The next two chambers are on level 4. One is located inside of Lab 1 at the lower right of the map but you need to be pretty strong to get across all of the security grids that you will encounter on the way.  Don't forget that you need to come back the same way.  The next one is located in the maze found in the lower left.  Just follow the map to be safe, you may make a wrong turn and wind up in the Dave Bowman memorial room.&lt;br /&gt; The next chamber is found on level 5.  It is in the very center of the maze in the lower left of the level 5 map.  See STRANGE ROOMS AND MAZES for more information.  You can get out of it if you do not go into the same room as the cryogenic chamber is in, however, then you can not rescue that child.  Something to think about.&lt;br /&gt; The last chamber is found on level 6.  It is also in a maze (see the level 6 map) that starts behind a column after you have gone down one level of stairs from level 5.&lt;br /&gt;&lt;br /&gt;STRANGE ROOMS AND MAZES&lt;br /&gt;&lt;br /&gt;Is there a way out of the David Bowman suite?&lt;br /&gt; Niy,ha,ha,...There is no way out of the David Bowman Suite.  Yes, you  have fallen into my trap!  You will be in there FOREVER!!!!!&lt;br /&gt; (or at least until you load the game you saved right before entering  it.....)&lt;br /&gt;I am lost in the Level 5 maze. I feel like I am going around and around in circles.&lt;br /&gt; Yes, you probably are.  You can sometimes use the pattern of eggs in  each room to map out the maze.  Or use boxes and the forklift.&lt;br /&gt;I still can't figure out the Level 5 maze!&lt;br /&gt; This maze is actually a 5X5 set of 3X3 rooms that folds in on itself.  &lt;br /&gt;I just got into the room with the cryogenic chamber in the maze on Level 5.  I have the forklift to carry the cryogenic chamber but I can't get out of the room!  There is no door!   &lt;br /&gt; You need to carry a teleporter in with you to teleport out again with  the cryogenic chamber.&lt;br /&gt;If you go east five squares from the east elevator on Level 5, you can look east across a vent grid into another area, but I never found an access point to that area.  Am I missing something, or is there really no way to get there?&lt;br /&gt; The vent grid area that you referred to is actually a joke.  I thought  that I would create this really interesting room that no one could ever  get to thus creating a great mystery.  Turned out that Peter Sills of  Mindscape figured out a way to get into that room so I guess the joke  is on me.&lt;br /&gt;I can't seem to get into Lab 1 on Level 4...the security grids suck me dry before I can get anywhere. &lt;br /&gt; You need to be pretty strong to get by this.  Also try going very  quickly through these corridors, the less time you spend on them the  better.&lt;br /&gt;On Level 4, just around the corner from the elevators is a door that leads to an infinite corridor that also contains a security grid. Does it lead anywhere?&lt;br /&gt; No, it simply wraps on itself.&lt;br /&gt;&lt;br /&gt;QUEENS&lt;br /&gt;&lt;br /&gt;What happens when I kill a queen on a level?&lt;br /&gt; Almost all of the creatures on that level revert to eggs.  Munch,  munch.   Keep in mind that once you have done this and have already   eaten all the eggs on this level you may wind up starving yourself to  death.&lt;br /&gt;I have located the Prime Queen at the reactor, but everytime I get through the security grid and attempt to attack - I'M DEAD. &lt;br /&gt; Although she can be destroyed if you are strong enough, ask yourself,  "is that really what I want to do with the next few hours of my life?".&lt;br /&gt;&lt;br /&gt;END GAME&lt;br /&gt;&lt;br /&gt;I have six frozen kids on my ship.  I have a new reactor core. I killed the Prime Queen.  What the heck do I do now?  I am really lost.  I can't get the ship to take off.  I'm getting old.  Help, please! &lt;br /&gt; Go to the main console on the bridge of the space ship and press the  bar on the far right.  This will take you into orbit.&lt;br /&gt;How do I blow up the colony without blowing up myself with it?&lt;br /&gt; Use the planet smasher, remember the button on the bridge console  that tends to self destruct?  Remember it is the button on the right!&lt;br /&gt;&lt;br /&gt;MISCELLANEOUS&lt;br /&gt;&lt;br /&gt;The aliens get stronger the further you descend into the colony.  This is due&lt;br /&gt;to the proximity to both the Prime Queen and the central reactor.  Also, the&lt;br /&gt;eggs laid by the creatures get more potent as well.&lt;br /&gt;&lt;br /&gt;Medium and Heavy Weapons use more energy than light!  On the first couple of levels the energy you are picking up per egg is relatively weak and does not lend a lot of power to the weapons and armor you are carrying.  However, as light weapons and armor use significantly less power, a little can go a long way.&lt;br /&gt;&lt;br /&gt;It takes less energy to kill the aliens on the higher levels.  You can "overkill" the aliens on level 1 for example if you were using heavy weapons.  Sort of like using 10 sticks of TNT when one will do.&lt;br /&gt;&lt;br /&gt;Don't duke it out with the aliens if you do not have to!!!  We won't think you're a coward if you just run for it.&lt;br /&gt;&lt;br /&gt;THE STORY OF THE COLONISTS&lt;br /&gt;&lt;br /&gt;     Many research scientists, military personnel and other professionals (along with their families) lived here.  The purpose of the colony was to conduct teleportation research.  The risks involved in this sort of pioneering work warranted the isolated location.  It was classified just how much progress had been made, but it was known that a prototype teleportation system was in the works.  The scientists closest to the project knew, however, just how far they had come.  They had successfully transported objects and, yes, people with no adverse effects.  It was actually possible to short-cut space and time! &lt;br /&gt;     But then unexplainable things started occuring.  First it was noticed that rooms and walls in some parts of the colony were warping.  Colonists would go out a door on one level and emerge on another.  Corridors became labyrinthine.  Rooms became exitless.  And then strange creatures were sighted.  There was speculation that these creatures had been either created by, or emerged from another dimension because of, the teleportation experiments.&lt;br /&gt;     It was also quickly realized that these creatures were dangerous.  Every possible measure was taken.  The experiments were stopped.  Colonists tried desperately to fight back.  They were largely unsuccessful, but discoveries were made about the nature of the creatures' existence:  if they were shot at enough, instead of being killed they reverted to a pure energy form.&lt;br /&gt;     Eventually, the colonists realized that it was hopeless.  They sent out a distress call, and used the few cryogenic chambers they had to keep the children out of danger.  All they could do was pray that somehow, someone would come and discover the horrors that had happened, rescue their precious children and destroy the results of their hasty research.&lt;br /&gt;            &lt;br /&gt;THE WALKTHROUGH&lt;br /&gt;&lt;br /&gt;TRUST ME...  it's really an easy game... heh heh ...&lt;br /&gt;&lt;br /&gt;Note that the following is to be used only as an example solution to "The Colony".  There are many other ways to complete the game!&lt;br /&gt;&lt;br /&gt;5-DELTA-5 REPORT&lt;br /&gt;2/11/57&lt;br /&gt;&lt;br /&gt;After crash landing on the planet where colony 5-DELTA-5 is located, I slowly regained consciousness.  I realized that my reactor core was damaged.  So was my memory.  I did remember to press the left button on the bridge console (instead of the right, which would have been an instant disaster!).  I went downstairs to the power spacesuit installer and, since my energy reserves were low, installed my suit at lowest levels for both weapons and armor. &lt;br /&gt;&lt;br /&gt;"So far so good" I thought to myself as I used the security console to the left of the airlock to unlock the airlock control button.  I entered the corresponding code from my decoder, pressed the "E" button (for "Enter") and went to the airlock, pressed the now unlocked +/- button and stepped through.  I almost forgot to go back to the inside door to close it again, but once that was done I opened the outside airlock door and stepped out onto the planet.  &lt;br /&gt;&lt;br /&gt;BANG!  Something shot at me!  I looked around and saw a squat giant bug like creature coming straight at me.  It was obvious that this was no friendly hello so I ran away from it as fast as I could go.  Since I didn't know where the entrance to the colony was and since I didn't want to get lost, I kept the ship in sight as I circled it, trying to keep away from the creature and all of his friends at the same time. &lt;br /&gt;&lt;br /&gt;I finally saw the entrance directly north-east of the ship and ran to it with the creatures close behind.  If these things were indicative of what I was to find inside of the colony, I was in real trouble!   I got to the colony and found, much to my relief, that the airlock door was open and that the airlock was the same model type as the one on the spaceship.&lt;br /&gt;&lt;br /&gt;I went inside, closed the airlock behind me and turning around noticed a large pyramidal shaped creature eyeing me suspiciously.  It didn't eye long for it immediately began an attack.  Since I was not in any position to run now all I could do was shoot back.  After about two or three shots the creature shuddered and actually began to shrink.  I went up to it to study the remains a little closer and when I went too near my power spacesuit began to whir and the collapsed creature disappeared!  I checked my power levels and noted that all of them had increased, which was useful because I was very near a terminal condition when I found the entrance to the colony.   So these creatures, or at least their remains, were useful after all.&lt;br /&gt;&lt;br /&gt;Entering the inside airlock door, I noticed a door on the other side of the room.  I tried to go through it but there was something on the other side blocking the entrance.  Turning around, I noticed the stairs and went down these instead.  I looked around this area, saw a hallway leading from the stairs and, double doors leading to an auditorium.  I went down the hallway and made a right turn.  I found an office at the end of this corridor and inside it in the lower left drawer, found a reactor code of the same type I kept in my desk on the ship.  "Great", I thought to myself, "They have the same kind of reactor as I use on my ship,  all I have to do is borrow theirs to get things working again!".&lt;br /&gt;&lt;br /&gt;I didn't have long to rejoice about my good fortune because another one of the creatures came up behind me and started blasting.  This one was just like the previous except that he was kind of upside down.  I dispatched with him,  and this time decided to examine the little beastie.  After a short time the collapsed creature began to shudder again and then it grew back to its full size.  Knowing what to expect this time I shot it down to size again and this time stopped to let my suit suck up the remains.  &lt;br /&gt;&lt;br /&gt;I went out of the office back into the hall and saw yet another creature, looking away from me.  This one was diamond shaped.  As I watched it I saw it actually lay a miniature carbon copy of itself.  "So the collapsed creatures are actually eggs!" I said to myself.  Not waiting for an invitation from the creature I started blasting away at it.  This time instead of shrinking away it just blew up!  I guess that since it was standing on one of its eggs it had no where to go.  I ran to the newly laid egg and feasted my suit on it.  Things were definitely improving!&lt;br /&gt;&lt;br /&gt;Further down the hall I saw a cafeteria on one side and a conference room on the other.  Inside the conference room on the table I found a slide projector.  Turning it on, I flipped through the slides while the voice over told me all about what I was up against.  Looked like there was going to be a tough battle ahead.&lt;br /&gt;&lt;br /&gt;I walked back out into the hall and needless to say I ran into even more of the creatures and their eggs.  I avoided the creatures because I didn't feel like my suit was up to the fight but the eggs were delicious, thank you.  After a little of this, my power spacesuit was beginning to look healthier.  I just had to make sure that I ate as many eggs as I could.  &lt;br /&gt;&lt;br /&gt;I came to the elevators next.  I decided to explore this level a little more and build up my strength before I went down there.  In my exploration of level one I found a library, a storage area, and a security area.  One thing I didn't find was people.  Not even any bodies.  That is until I came to the first cell in the security area.  There inside was a cryogenic chamber.  Not only that, but it was occupied.  A couple of creatures were hanging around so I took care of them.  The cryochamber had a note warning not to open it up so I had to figure out a way to get this thing back to the ship intact.  Well, it would have to wait until later.&lt;br /&gt;&lt;br /&gt;I went back to the elevators, and took one to level 2.  As soon as I stepped off I ran into the biggest eyeball I had ever seen.  I thought it might be one of the kid's balloons until it fired at me.  I shot back.  This one was a little tougher than the creatures on level one.  In fact all of the creatures were a bit nastier.  I could hardly wait till I got to the bottom level.&lt;br /&gt;&lt;br /&gt;This was an apartment level.  Nothing really useful that I could find.  There weren't any cryochambers here.  Just a lot of empty beds and a school.  Very depressing.  I did run into a queen.  Very nasty thing.  I nearly lost it all here.  A number of other creatures were standing around, looking pretty disinterested in the battle.  They are not very smart.  When I did kill the queen, she didn't shrink like the others, she just blew up.  When she was gone all of the other creatures seemed to lose the will to live also and they collapsed to their egg state.  Needless to say, this did wonders for my ego and my power spacesuit.  &lt;br /&gt;&lt;br /&gt;The next level was another apartment level.  Here I found another cryochamber in apartment 33.  I could also tell that things were beginning to get weird.  I went through a closet door and found myself on another level at one point.  The creatures must have had something to do with it.&lt;br /&gt;&lt;br /&gt;The next level was the lab area.  Here I found a number of labs with partially working teleporters.  They didn't look particularly safe so I stayed away from them.  I did find another cryochamber in Lab 1, however.  This was not easy to get to.  There were a lot of security grids to cross.  Another cryochamber was in a maze on this level.  Well, I would have to come back for them later. &lt;br /&gt;&lt;br /&gt;Inside of Lab 2, in the closet of all places, was a corridor that led to tunnel that brought me out to a hidden laboratory.  Inside this lab there were four teleporters.  These looked like they were ready to go, so I decided to try one out.  I entered teleporter number 1 and after closing the door there was a tremendous burst.  I opened the door and found myself coming out of teleporter 2.  "This may prove to be useful", I said to myself, having expected to come out of teleporter one again.&lt;br /&gt;&lt;br /&gt;I went back to level 4 and took the elevator down to level 5.  This was the storage area.  Inside of storage room 5 was a nice big forklift.  This was going to be easy, I thought.  Also, while I was on this level, a voice came to me (suspension of disbelief required here) that told me there was yet another child somewhere in a maze on this level and that it was inside a room that had doors into it, but no doors out.  Well, since I always listen to voices, I stayed out of the maze, but I did keep the teleporters in mind for use later.&lt;br /&gt;&lt;br /&gt;Since this was the lowest level that the elevator went to I took the stairs down to the next level.  I found another cryochamber here, inside a maze that was hidden behind a column.  I took the stairs down two more levels where I not only found the reactor, but I found a set of security grids protecting it and what looked to be the Prime Queen of the creatures.  Not wanting to deal with her just yet I decided to first rescue all of the children.&lt;br /&gt;&lt;br /&gt;The first thing I did was to go back to level five and retrieve the forklift out of storage room 5.  I took this up the elevator and into Lab 2, down the secret hall into the tunnel and I picked up teleporter number 3.  I took it back to where the elevators were, then up to level 1.  I carried it to the stairs leading to the airlock and then came to the numbing realization that forklifts can't go up stairs.  Well, that was a disappointment.  But they must have gotten it into the colony in some way.  Then I remembered the blocked door just as you enter the colony from the airlocks.  What was on the other side?  After a little more exploration I found that inside the storage area on this level was a number of boxes blocking a door.  I put down the teleporter, picked up the boxes and moved them out of the way, and then picked the teleporter up again and went out.   Lo and behold, I found myself in front of the airlock doors!   I simply went through them, turned southwest, and carried the teleporter back to the ship. &lt;br /&gt;&lt;br /&gt;Once inside the ship I was being really clever.   I put the teleporter down inside of the reactor room and then tried to take the forklift into it instead of lifting it.  This did not work.  The forklift insisted on trying to carry it.  I realized that since that was what it was programmed to do I had no choice but to carry something with me when I went through it.  So I went to the ship store and picked up a box with the forklift and, since the forklift could not carry more than one object at a time it was forced to enter the teleporter.  After closing the door, I was teleported back to teleporter number 4, just like before.  I put down the box , picked up teleporter 2, and carried it back to the elevators on level 4.  &lt;br /&gt;&lt;br /&gt;Now I was ready to do some serious rescuing.  I took the forklift up to security area in level one and picked up the first cryochamber.  I carried it down to level 4 and into the teleporter and teleported to the ship.  I carried it to the front empty room of the ship.  One down and five to go.  I picked up another box, and teleported back to the lab.  This time I picked up teleporter 4 and carried it back, and placed it beside teleporter 2.  &lt;br /&gt;&lt;br /&gt;I then went to level 3 and apartment 33 and carried the cryo back down the elevator, through teleporter 2 back to the ship, got another box and was back in a flash.  This was almost too easy.  But then I realized I was running out of boxes on the ship. &lt;br /&gt;&lt;br /&gt;The next cryochamber was in the maze on level 4 so I went in and, carefully avoiding the Dave Bowman memorial room, retrieved it (I'm really good at mazes).  Teleporting back to the ship I placed it beside the other two.  I was halfway done!  I grabbed another box and noted that there was only one left after this.  Back to the colony and into Lab 1.  &lt;br /&gt;By this time I was pretty strong,  so the security plates in this area were not too much of a problem.  I also went over them as fast as I could;  they can hurt if you stick around.  I had to pause every so often to dispatch a creature or two, nothing serious.  I got to the lab, retrieved the cryochamber and went back the same way I came, much faster this time since there were no creatures blocking my path.  I then teleported back to the ship with cryochamber number 4.  &lt;br /&gt;&lt;br /&gt;Alas, I was down to my last box.  I picked it up and teleported back to the colony.  Now I was going to have to think.  The next cryochamber was somewhere in the maze on level 5, inside a room with no exit doors.  Luckily, I had another teleporter that I could waste on this project so I went back through Lab 2 to the tunnel and the hidden lab and picked up the last teleporter.  I carried it back up, then down the elevator to level 5 and into the maze.  I quickly found the room with the cryochamber in it, put down the teleporter, picked up the chamber and stepped into teleporter 1 inside the room and was transported to teleporter 2 near the elevators.  Then I turned around, got back into teleporter 2 and found myself back on the ship.  &lt;br /&gt;&lt;br /&gt;Well, there were five of the cryogenic chambers sitting next to each other.  Only one left.  Unfortunately, I had to walk back to the colony because I didn't have any boxes left.   It was a short trip.&lt;br /&gt;&lt;br /&gt;Emerging from the airlock, I wasn't paying attention and walked down the stairs while I was inside the forklift.  When I woke up, I was down at the bottom of the stairs.  I could tell that getting cryochamber number 6 was not going to be fun. &lt;br /&gt;&lt;br /&gt;I took the elevator down to level 4, picked up teleporter number 2 and went down the elevator again to level 5.  There I took the stairs down to level 6 (yet another fall, nothing damaged though) and went into the maze to recover the sixth and last cryogenic chamber.  Once this was done and I had placed it next to the other five on the ship I realized that I had no boxes left to carry into the teleporter and that the outside airlock door was open.  I was stuck!&lt;br /&gt;&lt;br /&gt;I then remembered that I had to replace the ship's reactor core.  I got out of the forklift, went upstairs to my desk and read the code inside the drawer.  I went back down to the reactor console and entered the code, being very careful because the wrong code would blow it up.  The reactor core dropped down from the ceiling and I got back into the forklift and picked it up and then got back into the teleporter.  I found myself back on level 4.  I took the elevator back down to where I had left teleporter 2 and put down the spent reactor core.   Since these cores are very fragile, when I dropped it, it smashed into a million pieces.  No great loss however.  I picked up the teleporter and carried it back to the stairs down to level 7 and then to level 8.  I then ran across the security grid, dropped the teleporter, jumped out of the forklift and ran smack into the Prime Queen.  Boy, was she mad.  I didn't feel up to arguing  with her so I ran around to the other side of the teleporter.  She lost interest in chasing after me.  All I had to do was enter the reactor code I found in the desk back on level one.  I entered the code, the reactor core dropped, I jumped back into the forklift and amid a flurry of shots from the Queen and her friend, I grabbed the reactor core, and got back into the teleporter.  I noticed that the lights went out in the colony when the core was removed, but there wasn't anybody left to miss it.  &lt;br /&gt;&lt;br /&gt;I closed the teleporter door and the next thing I knew, I was back on the ship.  I placed the new core into the reactor.  Got out of the forklift, entered the reactor code to lift the core back inside and went upstairs.&lt;br /&gt;&lt;br /&gt;All systems were "GO" when I got back to my console.  I pulled up the accelerator and the next thing I saw was the planet shrinking under me as I went into orbit.  I looked down at the innocent sphere which I was about to crush the life out of and said "No matter where you go, there you are."  I smiled as I pressed the planet smasher button and sat back to watch one of the best fireworks displays this side of the galaxy.  The only thing left to do was to collect my medals.&lt;br /&gt;&lt;br /&gt;SPACE MARSHALL ACADEMY ENTRANCE EXAM&lt;br /&gt;&lt;br /&gt;What happens when you set the date to 12/25?&lt;br /&gt;How many queens are there inside the Colony?&lt;br /&gt;Where do you go when you lift teleporter 3 with the lifter and enter teleporter 2?&lt;br /&gt;What is the voice saying in the slide shows (Only on Macintosh version)? (Hint: .sdrawkcab s'tI)&lt;br /&gt;What year does the adventure take place? Bonus: what is its significance?&lt;br /&gt;Where are the chattering teeth?&lt;br /&gt;What topological shape is the planet?&lt;br /&gt;Assuming that at your slowest speed each step is a distance of 1 meter what is the radius of the planet?&lt;br /&gt;Where do the doors in the room on the other side of the big pit on level 5 lead?&lt;br /&gt;What happens when you hold down both the mouse button and the space bar when you are in the middle of a fight?&lt;br /&gt;If you don't have the will or the energy to fight a creature, but it is blocking your path, how can you get by it?&lt;br /&gt;How many movies can you name that influenced some aspect of the design of "The Colony"?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-8656758330571971231?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/8656758330571971231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=8656758330571971231' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/8656758330571971231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/8656758330571971231'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2009/11/colony-walkthrough.html' title='Colony Walkthrough'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-5125364447466469840</id><published>2009-02-05T15:12:00.003-05:00</published><updated>2009-02-05T15:16:02.804-05:00</updated><title type='text'>On/off world</title><content type='html'>Brandon Boyer at Boing Boing Offworld was kind enough to post a link to the Colony videos I made. You can see it here:&lt;br /&gt;&lt;br /&gt;&lt;a href=" http://www.offworld.com/2009/02/a-look-back-at-the-colony-the.html"&gt;A Look Back At the Colony&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-5125364447466469840?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/5125364447466469840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=5125364447466469840' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/5125364447466469840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/5125364447466469840'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2009/02/onoff-world.html' title='On/off world'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-4695896943291084740</id><published>2009-01-20T22:19:00.002-05:00</published><updated>2009-01-20T22:27:09.862-05:00</updated><title type='text'>The ICE Videos</title><content type='html'>ICE stands for Interactive Collaboration Environment. This is the real proto-Croquet architecture I built at Virtus. The ideas were strongly influenced by Apple's OpenDoc architecture and conversations with Alan Kay. There were two versions of this, one with some really neat recursive drag and drop capabilities. This system was collaborative from the start, including voice and video. The "avatars" were flying TVs with video images of the other users on them. The video was from some special cards that are long gone, so I could not show that in this demo. Once again, thanks to David Easter for providing the machine I used to record this demo. David also designed much of the component architecture that we built here. The second video is in some ways even more interesting than the first. We actually made the entire ICE system itself a component which meant that we could drag and drop ICE into a 3D window in the space. Early portals!&lt;br /&gt;&lt;br /&gt;Enjoy it.&lt;br /&gt;&lt;br /&gt;ICE Version 1&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/KFdeVRteiSY&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/KFdeVRteiSY&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;ICE Version 2&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/fI-uwgHIR4I&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/fI-uwgHIR4I&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-4695896943291084740?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/4695896943291084740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=4695896943291084740' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/4695896943291084740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/4695896943291084740'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2009/01/ice-videos.html' title='The ICE Videos'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-5705215728120992728</id><published>2009-01-19T22:39:00.005-05:00</published><updated>2009-01-19T22:51:48.859-05:00</updated><title type='text'>The Colony Videos</title><content type='html'>I finally got around to posting the videos I made of The Colony. I had to borrow an old Macintosh from David Easter (who also did the ports to the PC and the Amiga) to make these, and I used a video camera to record them. This demonstrates the game, and I talk a bit about the technology behind it and why I designed the game play the way I did. Let me know what you think. I will also be posting some videos of Virtus ICE (Interactive Collaboration Environment). This was where the ideas for what became Croquet and then Qwaq Forums began.&lt;br /&gt;&lt;br /&gt;The Colony videos are in two parts and you can see them here. &lt;br /&gt;&lt;br /&gt;Part 1:&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/i1XENlUUOhA&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/i1XENlUUOhA&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Part 2:&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/3k3qrt76Ddk&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/3k3qrt76Ddk&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-5705215728120992728?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/5705215728120992728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=5705215728120992728' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/5705215728120992728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/5705215728120992728'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2009/01/colony-videos.html' title='The Colony Videos'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-24963843539168842</id><published>2008-04-03T10:10:00.002-04:00</published><updated>2008-04-03T10:15:13.926-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wall street journal'/><category scheme='http://www.blogger.com/atom/ns#' term='alan kay'/><category scheme='http://www.blogger.com/atom/ns#' term='David A. Smith'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual worlds'/><category scheme='http://www.blogger.com/atom/ns#' term='Qwaq'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>Qwaq in WSJ</title><content type='html'>We were in the Wall Street Journal - with a picture! Check it out here:&lt;br /&gt;&lt;br /&gt;&lt;a href=" http://online.wsj.com/article/SB120719726445485981.html"&gt;Virtual World Gets Another Life&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It includes an image of the new "Business Avatars" which have not been release yet, but look wonderful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-24963843539168842?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/24963843539168842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=24963843539168842' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/24963843539168842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/24963843539168842'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2008/04/qwaq-in-wsj.html' title='Qwaq in WSJ'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-6164435346925350312</id><published>2008-03-25T11:07:00.000-04:00</published><updated>2008-03-25T11:20:22.724-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interoperability'/><category scheme='http://www.blogger.com/atom/ns#' term='Second Life'/><category scheme='http://www.blogger.com/atom/ns#' term='avatars'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual worlds'/><category scheme='http://www.blogger.com/atom/ns#' term='Qwaq'/><title type='text'>Interoperability</title><content type='html'>I have been spending a large amount of time talking to people about interoperability in virtual worlds. One problem is defining what it means - and why it is important. From what I can tell, the main thing people are looking for is a way to easily traverse from one virtual world to another. It would be great to be able to jump through a portal from Second Life into Qwaq and back. We already support URLs as links between Qwaq spaces. Adding a Second Life island would be a bit tricky, but I think it could be done.&lt;br /&gt;&lt;br /&gt;There is also mention of having one's avatar go along for the ride, but it turns out that this is not that important, and may not even be a good idea. One way to think about it is people already have multiple identities online. I have a work email address, personal email, and a number of random older email addresses that I still get mail from. I don't like mixing them, and I have different expectations for the kind of mail I get from them, and people have different expectations from me depending on whether it is a work or personal email. That doesn't even begin to address the difference in security requirements.&lt;br /&gt;&lt;br /&gt;Avatars are context specific artifacts. My avatar in World of Warcraft makes no sense in my business world. An obfuscated name model like Second Life makes no sense in business either - good business practice is built upon a strong trust relationship. If I don't even know who you are I can't do business with you. &lt;br /&gt;&lt;br /&gt;On the other hand, if you like how your avatar looks in world A, it would be nice to have a similar version in world B. I like having the same name for my email addresses at gmail and at Qwaq, even if my role in each is different.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-6164435346925350312?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/6164435346925350312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=6164435346925350312' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/6164435346925350312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/6164435346925350312'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2008/03/interoperability.html' title='Interoperability'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-7324020145469295294</id><published>2008-02-21T10:42:00.001-05:00</published><updated>2008-02-21T10:47:04.958-05:00</updated><title type='text'>Hydra!</title><content type='html'>Andreas Raab wrote:&lt;br /&gt;&lt;br /&gt;In its ongoing commitment to Open Source, Qwaq has decided to release&lt;br /&gt;the first multi-core capable Croquet VM under the MIT license.&lt;br /&gt;&lt;br /&gt;Hydra VM is a virtual machine capable of running multiple Croquet images&lt;br /&gt;side-by-side, therefore being able to effectively utilize multi-core&lt;br /&gt;CPUs. Hydra VM is still in an early phase of development, but given the&lt;br /&gt;(very successful) early results, Qwaq has decided to make it available&lt;br /&gt;to general public in the hope that other people will help Igor to make&lt;br /&gt;further progress in developing Hydra VM.&lt;br /&gt;&lt;br /&gt;The offical release is available here:&lt;br /&gt;&lt;br /&gt;&lt;a href=" http://www.qwaq.com/HydraVM"&gt; http://www.qwaq.com/HydraVM&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;and contains the following files:&lt;br /&gt;&lt;br /&gt;* HydraVM-bin.zip - A prebuilt Windows version of Hydra VM.&lt;br /&gt;* HydraVM-src.zip - The (C) source tree for building Hydra VM.&lt;br /&gt;* HydraVM-pkg.zip - The (Squeak) packages needed to build Hydra VM.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-7324020145469295294?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/7324020145469295294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=7324020145469295294' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/7324020145469295294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/7324020145469295294'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2008/02/hydra.html' title='Hydra!'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-4221152758784253593</id><published>2007-11-30T10:36:00.000-05:00</published><updated>2007-11-30T10:51:46.460-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='avatars'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='Qwaq'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='Croquet'/><category scheme='http://www.blogger.com/atom/ns#' term='Collada'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>Croquet Priorities</title><content type='html'>Mark McCahill and I have been discussing the top priorities for Croquet moving forward. Here is the list of the top six things that we will be doing for 2008. The main theme is interoperability. This is interoperability at many levels. First, ensuring Qwaq Forums and Open Croquet worlds are interoperable. Looking beyond that is allowing Croquet worlds and avatars to interoperate with other platforms. This will be a large effort, but many of the technical hurdles have already been jumped. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- XML space description: a common space description file format in XML to allow the open source and QWAQ clients to read stored copies of each other's worlds.&lt;br /&gt;&lt;br /&gt;Minimizing the size of objects being replicated is important so that spaces may be saved compactly and new user joining the replicated space can do so quickly.&lt;br /&gt;&lt;br /&gt;In practice this means meshes and textures should be referred to by name in the replicated space, and fetched by each client&lt;br /&gt;independently of joining the space. By fetching these large objects independently of the replicated space, clients can maintain locally cached copies which speeds joining the space. An XML description of the space also simplifies programatically generating space descriptions, and aids in integration with various search engine technologies.&lt;br /&gt;&lt;br /&gt;Moreover, an XML-based space description also allows for the possibility of a croquet browser written in another language or based on a different code base. However, this implies changes to the rendering engine since we would be moving textures/mesh definitions outside the replicated space. QWAQ's forums have shown that this approach has many virtues. Ultimately we might want to use an extended version of Collada - but the first step would be to align the Open source and QWAQ code bases so we can read each other's world definitions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- robust Jabber client: SSL TLS support ( OpenSSL plugin?)&lt;br /&gt;&lt;br /&gt;This work can happen in the open source arena and is relatively independent of changes to space description formats. The current Jabber client does not support SSL transport level security and needs to - since most Jabber servers require SSL TLS. Supporting an open standard IM/Chat is a key for interoperability with the chat world, and ideally would allow cross world chat with other environments (such as Second Life) should those worlds decide to do the right thing and support a standards based chat protocol for inter world chatting. We also need this work so that we can advertise presence outside Croquet using an open standards-base approach.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- message router/timestamper: optional message router/timestamper as an Apache plugin?&lt;br /&gt;&lt;br /&gt;The microserver is a message router/timestamper for sites that want a standalone message router to augment the croquet client built-in router. We can leverage the support that the apache server codebase has by providing an option to externalize the message router function.&lt;br /&gt;&lt;br /&gt;This also opens the possibility of simplifying access control/authentication integration with existing enterprise AuthN/AuthZ&lt;br /&gt;systems. By creating a microserver that plays in the apache space we can leverage existing Apache web server authentication/access control modules.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- plugin API for extending space definitions: various browsers will extend functionality of spaces by adding new features, we need a definition for how this happens&lt;br /&gt;&lt;br /&gt;We expect that various browsers will extend functionality of spaces by adding new features. We need a standard way to describe these plugins that allows less well endowed clients to at least display a placeholder for content they cannot render and point to how to get the required extension. This is analogous to plugins for web pages.&lt;br /&gt;&lt;br /&gt;Note that these plugins may affect both the replicated space -and- the non-replicated inside-the-helmet user interface of a croquet client.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- scripting for user-defined behaviors: Javascript, Lua, panels, roll-your-own, and all that jazz&lt;br /&gt;&lt;br /&gt;If we have a common XML format for describing spaces we have half of what we need. The other half is a common way of describing user-created behaviors, so a scripting language - like lua or javascript - would allow for actions to be stored along with models and textures. This implies that browsers will all need to support the scripting language.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- avatar definitions: enabling Akbar 'n Jef's Avatar Hut&lt;br /&gt;&lt;br /&gt;Users of social spaces care a lot about their representation in-world&lt;br /&gt;- we need to converge on avatar standards so that each implementation of croquet is not re-inventing this particular wheel. That, and a good babyfur avatar should be a lifetime investment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-4221152758784253593?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/4221152758784253593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=4221152758784253593' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/4221152758784253593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/4221152758784253593'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2007/11/croquet-priorities.html' title='Croquet Priorities'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-2642439597194516949</id><published>2007-10-05T16:34:00.001-04:00</published><updated>2007-10-06T01:14:52.844-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Squeak'/><category scheme='http://www.blogger.com/atom/ns#' term='lua'/><category scheme='http://www.blogger.com/atom/ns#' term='Croquet'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>More Scripting</title><content type='html'>I am sure everyone has their own opinion about scripting inside of Croquet. Here are mine:&lt;br /&gt;&lt;br /&gt;- The scripting we use should be a popular language. Javascript is the obvious choice. Lua gets high marks for coolness, but most people have never even heard of it. It would be great to include any language, but getting the first one to work is a big enough project.&lt;br /&gt;- It needs to work INSIDE of the Island. That is, it should offer the exact same guarantees of determinism that Croquet Islands provide. &lt;br /&gt;- It must utilize the same numerics package that we have added to Squeak/Croquet. (Otherwise the previous will fail.)&lt;br /&gt;- It must be enhanced to support #future messages directly. You MUST NOT loop to simulate in Croquet. Bad bad bad.&lt;br /&gt;- The interface for editing the scripting language must be INSIDE of the Island. In other words - extreme programming on steroids! Scripting is a form of communication. When we came up with the idea for Croquet the intent was not to have a virtual mall and hang out. It is intended to be a high bandwidth communication medium. This includes the ability to dynamically express a simulation as part of the conversation! Hence the expression itself is a part of the communication. The editing is part of the argument between the participants.&lt;br /&gt;&lt;br /&gt;This is probably more important to me than others, but until this is available, it ain't Croquet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-2642439597194516949?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/2642439597194516949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=2642439597194516949' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/2642439597194516949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/2642439597194516949'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2007/10/more-scripting.html' title='More Scripting'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-4831879421851426847</id><published>2007-09-24T14:39:00.000-04:00</published><updated>2007-09-24T14:54:34.426-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qwaq mirimar intel'/><title type='text'>Qwaq + Intel = Collaborative Mirimar</title><content type='html'>Qwaq and Intel just announced that we will be collaborating to bring Mirimar technologies that were developed at Intel to market. This is exciting for a number of reasons. Mirimar is a beautiful and seamless interface with the users desktop, which will make Qwaq Forums even more of a compelling experience. And of course we get the opportunity to work directly with Intel and in particular with John David Miller, one of the principals behind Mirimar to develop and integrate this technology. JDM is definitely one of us - and we have had a lot of fun working with and learning from him over the last year. It will be fun to roll this product out the door.&lt;br /&gt;&lt;br /&gt;Press release here:&lt;br /&gt;&lt;a href="http://www.intel.com/pressroom/archive/releases/20070920corp_a.htm"&gt;Intel-Qwaq Press Release&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Official video of Justin Rattner's keynote including a guest appearance by Greg Nuyens. This seems to require IE and a PC:&lt;br /&gt;&lt;a href="http://www.intel.com/pressroom/kits/events/idffall_2007/webcasts.htm "&gt;Intel Developer Forum Webcasts&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is just the video part - no slides, but seems to work everywhere:&lt;br /&gt;&lt;a href="http://mfile.akamai.com/28603/wmv/intelstudio.download.akamai.com/10670/idf/fall_2007/070920_JR/mshigh.wmv"&gt;Intel Developer Forum Video&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-4831879421851426847?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/4831879421851426847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=4831879421851426847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/4831879421851426847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/4831879421851426847'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2007/09/qwaq-intel-collaborative-mirimar.html' title='Qwaq + Intel = Collaborative Mirimar'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-2339370972565941567</id><published>2007-08-28T10:02:00.000-04:00</published><updated>2007-08-28T10:26:56.330-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='smalltalk'/><category scheme='http://www.blogger.com/atom/ns#' term='scratch'/><category scheme='http://www.blogger.com/atom/ns#' term='lua'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>Scripting</title><content type='html'>I have been spending a great deal of my time lately thinking about scripting issues. Most people are a bit wary of diving into Smalltalk to get things done. Of course, it is really a marvelous scripting language in many ways, but people tend to find it a bit difficult. I think the reason for this is the same reason Lisp is a bit difficult. Both Smalltalk and Lisp have extremely regular syntax structure. In Smalltalk, even the traditional control structures (if/then, while, for) are just normal object messages that look the same as any other object messages. Most other languages have "exceptional" syntax, in that they have a number of reserved key words, and often have specific non-regular syntax to support these "exceptions". This makes it easier to visually parse, as most developers also tend to format their code around this non-regular syntax. This is especially useful to new programmers, because they can use this as a way to understand the code they are looking at. &lt;br /&gt;&lt;br /&gt;Smalltalk and Lisp programmer usually format their code in a way to hilight the flow of control as well, but since every line of code starts with an actual object followed by a message, even this is still harder to immediately recognize.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://scratch.mit.edu/"&gt;Scratch&lt;/a&gt; is beautiful visual scripting language developed by the &lt;a href="http://llk.media.mit.edu/"&gt;Lifelong Kindergarten group&lt;/a&gt; at MIT where they have moved very strongly in the direction of hilighting these very same control structures by using multiple shaped and colored tiles. What is nice about this is it makes it very easy to understand the structure of a program at a glance, and the program itself is simply "assembled" like you might put Lego blocks together. Interestingly, Scratch is built on top of Squeak - a version of Smalltalk.&lt;br /&gt;&lt;br /&gt;We have been looking at a number of scripting languages over the past year, and have even integrated Python directly into Qwaq Forums. We are also looking very closely at Javascript and Lua. In particular, I love Lua, as it really gives me a lot of the capabilities I miss in Smalltalk - functions are first class objects and it has full closure support. This allows for some very interesting capabilities in code. I have been saying that I was thinking about building Wicket in Python in the past, but I believe Lua would be a much better choice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-2339370972565941567?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/2339370972565941567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=2339370972565941567' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/2339370972565941567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/2339370972565941567'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2007/08/scripting.html' title='Scripting'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-27646630162411779</id><published>2007-05-22T11:06:00.000-04:00</published><updated>2007-05-22T11:17:18.128-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Islands'/><category scheme='http://www.blogger.com/atom/ns#' term='Road Map'/><category scheme='http://www.blogger.com/atom/ns#' term='Croquet'/><category scheme='http://www.blogger.com/atom/ns#' term='Classes'/><title type='text'>Croquet Road Map</title><content type='html'>A draft of the Croquet Road Map is now available here: &lt;br /&gt;Go here: &lt;a href="http://www.croquetproject.org/index.php/Road_Map"&gt;Croquet Road Map&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There are three critical items: Island Classes, Two Dimension Infrastructure, and Documentation. These are the essential elements of the next big Croquet release, which I will discuss a bit later. &lt;br /&gt;&lt;br /&gt;The first item probably needs some elaboration. Island Classes are classes that are part of the replicated Island's definition. They can be edited like any other class, but only exist inside of a particular Island. The code can be reused only by copying the classes between Islands. This goes beyond a uni-class framework, turning Islands into complete encapsulated development environments. This may raise more questions than it answers, but it is a critical aspect of what we were after when we created Croquet - the ability to share even complex simulations between users in a protected space.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-27646630162411779?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/27646630162411779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=27646630162411779' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/27646630162411779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/27646630162411779'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2007/05/croquet-road-map.html' title='Croquet Road Map'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-2247449567930134395</id><published>2007-05-02T15:40:00.000-04:00</published><updated>2007-05-04T12:10:25.206-04:00</updated><title type='text'>My Internet2 Talk ... in Color</title><content type='html'>I participated in a panel at the Spring Internet2 members meeting and a video of it is available online. For those of you wanting to get a demo of Qwaq Forums - check it out. Beware, there is about 3-5 minutes of nothing happening at the beginning of the video. Don't give up. I am the first speaker, but it is well worth watching Sandra Kearney at IBM and Robert Gehorsam of Forterra Systems and the excellent questions at the end of our short presentations. &lt;br /&gt;&lt;br /&gt;Go here: &lt;a href="http://winmedia.internet2.edu/smm07-vod/smm07-primary-8.wmv"&gt;Internet2 VR Panel&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-2247449567930134395?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/2247449567930134395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=2247449567930134395' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/2247449567930134395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/2247449567930134395'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2007/05/my-internet2-talk-in-color.html' title='My Internet2 Talk ... in Color'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-1640368524077084450</id><published>2007-04-28T22:13:00.001-04:00</published><updated>2007-04-28T22:14:43.827-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Alan Johnston'/><category scheme='http://www.blogger.com/atom/ns#' term='BBC'/><title type='text'>Alan Johnston - BBC</title><content type='html'>&lt;a href="http://news.bbc.co.uk/1/hi/in_depth/world/2007/alan_johnston/default.stm"&gt;&lt;img alt="Alan Johnston banner" src="http://www.bbc.co.uk/blogs/theeditors/alan_johnston.gif" width="150" height="90"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click here to show your support for Alan.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-1640368524077084450?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/1640368524077084450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=1640368524077084450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/1640368524077084450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/1640368524077084450'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2007/04/alan-johnston-bbc.html' title='Alan Johnston - BBC'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-6468036815569714453</id><published>2007-04-25T10:14:00.000-04:00</published><updated>2007-04-25T10:20:15.994-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='911'/><category scheme='http://www.blogger.com/atom/ns#' term='teller machines'/><title type='text'>Bank Teller Machines and 911</title><content type='html'>I just had a crazy idea and had to write it down somewhere. Why don't bank teller machines respond to 911? They have a numeric keypad, and their users are also a target for potential victimization. And they are everywhere. They also include video cameras. Knowing that a teller machine was also directly wired to the police might make criminals reconsider violent attacks near them. Of course if your pin number is 911x, there might be some problems, but I suspect these are easily changed. Nothing to do with Qwaq, Inc or Croquet... but so what?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-6468036815569714453?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/6468036815569714453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=6468036815569714453' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/6468036815569714453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/6468036815569714453'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2007/04/bank-teller-machines-and-911.html' title='Bank Teller Machines and 911'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-3868169434744702738</id><published>2007-04-24T16:03:00.000-04:00</published><updated>2007-04-24T16:04:25.320-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='Croquet'/><title type='text'>Croquet and the Perils of Open Source</title><content type='html'>Croquet is Open Source. This has had both a positive impact on the project and in some ways a decidedly negative impact. The positive is the positives that most open source projects enjoy - lots of interest and creativity building around the system, visibility, strong academic relationships - it even helps allay concerns of larger enterprise customers knowing that there will not be a Microsoft-type lock-in with a single vender. &lt;br /&gt;&lt;br /&gt;From the start Croquet was developed completely out in the open. Even the very first, barely useful versions of the system were readily available to download, deconstruct, and criticize. Nothing wrong with this - we invited it, and the project profited from it. The big problem we had to deal with is people were disappointed with how much of the system was or wasn't working. I have heard people say "Yeah, I tried Croquet a few years back, but it.... " (you can fill in the blank with a number of choices). I can understand why people would be irritated. Some critical problems in Croquet took much longer for us to solve than we ever thought they would, we had spent a minimal amount of time on UI, back-end infrastructure, performance, etc... Getting something like Croquet to work at all was a monumental task. We didn't exactly have a model to work from. We were inventing - not reverse engineering.&lt;br /&gt;&lt;br /&gt;Of course, anyone that has ever developed a larger project has seen these kinds of issues. I certainly have dealt with them many times. The big difference was no one saw any of my project's warts except my colleagues and me. And we worked hard to remove, or at least hide them before we unveiled the final polished application. Croquet was different - people have been able to randomly sample the state of the project and critique it based upon that sample. Even today, the Croquet API is not quite a user-centric architecture. It is much more akin to the Linux kernel, looking for a front end to empower the user and a back-end to help users find each other and provide additional services. On the other hand, it is doing almost everything we said it would - and it really works well. We have even started a company &lt;a href="http://www.qwaq.com"&gt;Qwaq, Inc.&lt;/a&gt; based upon the same open source system that you can download today. We are getting great reviews for our first product Qwaq Forums, even though it is till in beta today.&lt;br /&gt;&lt;br /&gt;What is my point? I have enjoyed this very open development process. I have learned a lot, and made a huge number of new friends and colleagues. Overall, it has been fun in spite of certain comments from people. I do think that next time - if there is one - I will probably hold off releasing a new system until it is a bit more mature and robust. In some ways that is sad - I think people that have stayed with the project from the beginning have learned a lot about how a complex system gets built and how it evolves. Most of this would be missed if you were to jump into a more complete end-user experience. On the other hand, it would probably increase the probability of success. In marketing, you only have one chance to make a first impression. Qwaq Forums is making a GREAT first impression. It would have been nice if Croquet had the same opportunity.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-3868169434744702738?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/3868169434744702738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=3868169434744702738' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/3868169434744702738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/3868169434744702738'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2007/04/croquet-and-perils-of-open-source.html' title='Croquet and the Perils of Open Source'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-6619756757489816910</id><published>2007-04-24T15:13:00.000-04:00</published><updated>2007-04-24T15:18:26.613-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='Qwaq Forums'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet2'/><category scheme='http://www.blogger.com/atom/ns#' term='Qwaq'/><title type='text'>Internet2 Conference</title><content type='html'>I am in Arlington, VA to be part of a panel on Virtual Worlds (Wednesday at 1:15pm). I intend to do a live demo of Qwaq Forums. I think that is a lot more interesting than a PowerPoint presentation. I have always tried to do demos to set the context of my talks, because I think being able to show people what I am doing and interested has a bigger impact than just talking about it. It does get a bit too exciting sometimes - Internet access is not always what it should be. One presumes that a conference about Internet2 will have a reasonable connection though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-6619756757489816910?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/6619756757489816910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=6619756757489816910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/6619756757489816910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/6619756757489816910'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2007/04/internet2-conference.html' title='Internet2 Conference'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-117657476911734844</id><published>2007-04-14T14:17:00.000-04:00</published><updated>2007-04-14T14:19:29.116-04:00</updated><title type='text'>Qwaq and Croquet at HASTAC</title><content type='html'>We will be demoing Qwaq Forums at the HASTAC conference at Duke next week. &lt;br /&gt;&lt;br /&gt;From their site:&lt;br /&gt;&lt;br /&gt;"A consortium of humanists, artists, scientists, social scientists and engineers from universities and other civic institutions across the U.S. and internationally, HASTAC ("Haystack") is committed to new forms of collaboration across communities and disciplines fostered by creative uses of technology.Since 2003, we have been developing tools for multimedia archiving and social interaction, gaming environments for teaching, innovative educational programs in information science and information studies, virtual museums, and other digital projects. HASTAC leaders have served as consultants to U.S. and international organizations and governments on grid computing and cyberinfrastructure.Our aim is to promote expansive models for thinking, teaching, and research. To view a presentation on HASTAC, please click on the presentation attached."&lt;br /&gt;&lt;br /&gt;Check it the conference here:&lt;br /&gt;&lt;a href="http://www.hastac.org/informationyear/conference"&gt;http://www.hastac.org/informationyear/conference&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-117657476911734844?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/117657476911734844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=117657476911734844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/117657476911734844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/117657476911734844'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2007/04/qwaq-and-croquet-at-hastac.html' title='Qwaq and Croquet at HASTAC'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-117657451578871804</id><published>2007-04-14T14:15:00.000-04:00</published><updated>2007-04-14T14:15:22.716-04:00</updated><title type='text'>3D Worlds and Interoperability</title><content type='html'>I attended a working lunch this week at Harvard to discuss 3D interoperability. It was an interesting discussion. I think the biggest problem was simply the definition of interoperability. For some people at the conference, it meant as little as reconstructing someone elses content in another 3D environment, or maybe being able to somehow copy 3D data sets from one place to another. Others viewed it as being able to reuse and dress-up your personal avatar for shopping or for role-playing. &lt;br /&gt;&lt;br /&gt;We even discussed the possibility of hooking Croquet up to Second Life via Croquet portals. This should be relatively straightforward to do - it would require a compound application of some sort, but since Croquet is already designed to hand off rendering to the adjacent Island (Croquet Islands and Second Life Islands are different kinds of things) when rendering through a portal, handing it to the Second Life client would not be much different. Coming back the other way might require a bit more finesse, as we would have to add some portal support to SL, and would have to call into an image based system. We have been doing something similar recently, so it is quite possible. &lt;br /&gt;&lt;br /&gt;I think David Reed (one of my fellow Croquet architects) really nailed what 3D interoperability should be. When we share 3D objects, we also need to share their behaviors. In most ways, the visual representation of an object is its least interesting aspect. What it can do, and how it interacts with the users and the worlds around it, however is REALLY interesting and very valuable. &lt;br /&gt;&lt;br /&gt;This is also really hard to do. Everyone uses different languages and scripts, and some - like Croquet - use a very different mechanism for enabling behaviors. Croquet has TeaTime and the concept of future replicated messages to manage its behavior. This enables a peer-to-peer approach to designing interactions, which otherwise would be near impossible. The only other solution is what everyone else has to do, which is maintain a central server and replicate the results of the computations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-117657451578871804?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/117657451578871804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=117657451578871804' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/117657451578871804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/117657451578871804'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2007/04/3d-worlds-and-interoperability.html' title='3D Worlds and Interoperability'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-117500970884614377</id><published>2007-03-27T12:34:00.000-04:00</published><updated>2007-03-27T12:35:08.850-04:00</updated><title type='text'>Croquet SDK 1.0 Released</title><content type='html'>Nonprofit ‘Croquet Consortium’ Releases Open-Source Software Tool Kit to Promote Collaborative 3-D Virtual Environments&lt;br /&gt;&lt;br /&gt;DURHAM, N.C. – March 27, 2007 – A nonprofit consortium of academic and corporate partners announced Tuesday the release of a free software tool kit for developers to use in creating 3-D "virtual environments."&lt;br /&gt;&lt;br /&gt;"We’re seeking to enable the creation of a rich series of interconnected ‘Croquet worlds’ where people can engage in productive collaborative interactions in support of learning and commerce -- worlds that can be created, maintained and continually modified without the constraints of proprietary computer code," said Julian Lombardi, assistant vice president of Duke’s Office of Information Technology.&lt;br /&gt;&lt;br /&gt;The Croquet Consortium’s new "3-D Virtual Environments Software Developer’s Kit" (Croquet SDK 1.0) will promote collaboration among far-flung research teams working on everything from cancer cells to hurricanes, as well as active learning among students and their instructors. These networked 3-D teams from research, education and industry will be able to work together across a variety of computer platforms and devices, from laptops to cell phones.&lt;br /&gt;&lt;br /&gt;"This will change the way people think about software and computation, from today’s device-oriented perspective to a perspective of computation as a persistent, pervasive service," said Patrick Scaglia, vice president of research and development at HP Labs.&lt;br /&gt;&lt;br /&gt;Croquet 3-D virtual environments can support live discussion among worldwide collaborators who come together in "real time" within a 3-D virtual space. They may view, manipulate and revise documents, dynamic visualizations or large amounts of data from sources such as laboratories or supercomputing centers.&lt;br /&gt;&lt;br /&gt;Added Greg Nuyens, chief executive officer of Qwaq Inc., "We have found Croquet to be a compelling platform technology for developing very large scale, richly featured and interlinked virtual environments. With the release of the Croquet SDK, we are excited about the new possibilities for using Croquet in our products and see benefits for developers everywhere."&lt;br /&gt;&lt;br /&gt;For example, public health officials and epidemiologists across a country could use the Croquet environment to track the spread of an infectious disease by sharing a dynamically changing display of infection data. Similarly, architects and engineers could collaborate on a building design, or chemists and biologists could prototype different chemical compositions for a new drug.&lt;br /&gt;&lt;br /&gt;The kit provides developers with a flexible tool to create virtual spaces with built-in networked telephony and a "late-binding object-oriented" programming language that allows multiple users to jointly create, animate or modify 3-D objects and dynamic simulations. Developers can also import and share resources, such as 2-D web applications or multimedia content, from their own systems. Working together across multiple locations, they can change simulations while they are running and work together to create new applications -- all in real time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-117500970884614377?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/117500970884614377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=117500970884614377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/117500970884614377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/117500970884614377'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2007/03/croquet-sdk-10-released.html' title='Croquet SDK 1.0 Released'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-117500963356738354</id><published>2007-03-27T12:32:00.000-04:00</published><updated>2007-03-27T12:33:53.576-04:00</updated><title type='text'>Croquet Consortium Launched</title><content type='html'>Industry and Education Leaders Launch The Croquet Consortium, Inc., a non-profit Foundation for Open Source Software Development.&lt;br /&gt;&lt;br /&gt;DURHAM, N.C. – March 27, 2007 – HP (Hewlett-Packard), Duke University, The University of Minnesota, and Qwaq, Inc. have jointly announced the formation of The Croquet Consortium, Inc., a 501(3)c non-profit foundation dedicated to promoting the continued development and widespread adoption of open source Croquet technologies for use in education, research, and industry. The launch of The Croquet Consortium coincides with the Consortium’s release the open source Croquet Software Developer’s Kit 1.0 -- as free software under the Croquet Open Source License.&lt;br /&gt;&lt;br /&gt;The Croquet Consortium provides an organizational base for the Croquet community of developers and users. Open to institutional and individual members, the Consortium offers an avenue for academic, corporate, and individual members ensure the long-term viability of the community by federating their Croquet software development projects mobilizing distributed resources on their behalf.&lt;br /&gt;&lt;br /&gt;With the launch of The Croquet Consortium, Inc., the development and adoption of scalable Croquet-based applications for use in education, research and industry enters a new, expanded, and highly-inclusive phase of multi-institutional collaboration. The Consortium 1) establishes a legal home for the Croquet community, 2) coordinates the management, definition and release of core interoperable Croquet architecture, 3) provides a clearinghouse for the collection and distribution of freely available Croquet open source software artifacts, 4) supplies a management structure for the solicitation and mobilization of distributed development resources, and 5) creates a focal point for outreach activities, including the Consortium Website, Annual Conference, training workshops, fellowships, and sponsored projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-117500963356738354?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/117500963356738354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=117500963356738354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/117500963356738354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/117500963356738354'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2007/03/croquet-consortium-launched.html' title='Croquet Consortium Launched'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-117496611599836391</id><published>2007-03-27T00:06:00.000-04:00</published><updated>2007-03-27T00:33:57.900-04:00</updated><title type='text'>Qwaq</title><content type='html'>We finally announced Qwaq. I am sure one or two of you were wondering why this blog went silent for such a long time. I had some good excuses - I was busy, and I didn't want to say anything about what I was doing anyway.&lt;br /&gt;&lt;br /&gt;Qwaq was founded by a group of us that believe Croquet can have an impact on the business world. Even an open source project like Croquet must have a revenue stream to drive it, and Qwaq is the first of what I hope will be many companies that will focus their efforts around making Croquet even more valuable. You can read more about the company here: &lt;a href="http://www.qwaq.com"&gt;http://www.qwaq.com&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Alan Kay and David Reed are advisers to Qwaq and Andreas Raab is a cofounder so we are still working together. In addition, Greg Nuyens, our other co-founder is the Qwaq CEO. I met Greg at a previous company I co-founded, and was extremely impressed by his intelligence, drive, and in particular his interest in the customers. &lt;br /&gt;&lt;br /&gt;Why Qwaq? I wanted a short word that was easy to remember and easy to type. Look at the top left three keys of your keyboard - QW are next to each other and the A is directly below these. I also thought that it sounded fun.&lt;br /&gt;&lt;br /&gt;There is evidently quite a bit of interest out there in what we are doing. Typing Qwaq into Google and you will see an amazing amount of coverage just since we announced the product a few weeks ago. I should mention that Remy Malan is our VP of Enterprise and did a terrific job with this.&lt;br /&gt;&lt;br /&gt;Finally, what impact will Qwaq have on the continued development of Croquet as an open source project? A very positive one. We are still extremely committed to this project and if anything have accelerated the amount of effort we have put into it. Croquet continues to improve - much of what we learned in building Qwaq Forums was directly incorporated into the next Croquet release (imminent) and I think it is better than ever. I plan to continue using this particular forum to keep people up-to-date on where Croquet will be going.&lt;br /&gt;&lt;br /&gt;Thanks for checking back - it is a really exciting time for Croquet (Qwaq is just half of the story), so watch this space and the Croquet Project home for more details to come.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-117496611599836391?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/117496611599836391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=117496611599836391' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/117496611599836391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/117496611599836391'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2007/03/qwaq.html' title='Qwaq'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-114701445203476758</id><published>2006-05-07T10:55:00.000-04:00</published><updated>2006-05-07T11:10:34.010-04:00</updated><title type='text'>Updates</title><content type='html'>Lots happening. The Croquet release is doing well. Remember that this is very much a developer release, so don't expect it to change your life today. Still lots of loose ends, the UI needs LOTS more work, performance is sub-optimal, still a number of complex problems to solve, but the underlying architecture looks like it is in great shape.&lt;br /&gt;&lt;br /&gt;Julian Lombardi and I attended the Metaverse Roadmap Project where we had a number of opportunities to demonstrate the system. Response was quite positive. See the following:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://metaverseroadmap.org/index.html"&gt;http://metaverseroadmap.org/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://scobleizer.wordpress.com/2006/05/06/wow-3d-operating-system-open-croquet/"&gt;http://scobleizer.wordpress.com/2006/05/06/wow-3d-operating-system-open-croquet/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ethanzuckerman.com/blog/?p=537"&gt;http://www.ethanzuckerman.com/blog/?p=537&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-114701445203476758?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/114701445203476758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=114701445203476758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/114701445203476758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/114701445203476758'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2006/05/updates.html' title='Updates'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-114589369921286568</id><published>2006-04-24T11:33:00.002-04:00</published><updated>2006-04-24T11:48:21.523-04:00</updated><title type='text'>Tasks</title><content type='html'>I am working on a new implementation of tasks that will make creating new UIs much simpler. Basically, there is a new base class, called a TTask which handles all events from the CroquetHarness. Even the default interface in Croquet is implemented this way.&lt;br /&gt;&lt;br /&gt;An event is interpreted and redirected by the task object. The default task simply forwards the event to the initially selected object, which is just what happens now. &lt;br /&gt;&lt;br /&gt;Ultimately, any portal will be able to reinterpret the events via their own task objects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-114589369921286568?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/114589369921286568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=114589369921286568' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/114589369921286568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/114589369921286568'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2006/04/tasks_114589369921286568.html' title='Tasks'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-114589345957444937</id><published>2006-04-24T11:33:00.001-04:00</published><updated>2006-04-24T11:44:19.586-04:00</updated><title type='text'>Tasks</title><content type='html'>I am working on a new implementation of tasks that will make creating new UIs much simpler. Basically, there is a new base class, called a TTask which handles all events from the CroquetHarness. Even the default interface in Croquet is implemented this way.&lt;br /&gt;&lt;br /&gt;An event is interpreted and redirected by the task object. The default task simply forwards the event to the initially selected object, which is just what happens now. &lt;br /&gt;&lt;br /&gt;Ultimately, any portal will be able to reinterpret the events via their own task objects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-114589345957444937?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/114589345957444937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=114589345957444937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/114589345957444937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/114589345957444937'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2006/04/tasks_24.html' title='Tasks'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-114589344541406382</id><published>2006-04-24T11:33:00.000-04:00</published><updated>2006-04-24T11:44:06.706-04:00</updated><title type='text'>Tasks</title><content type='html'>I am working on a new implementation of tasks that will make creating new UIs much simpler. Basically, there is a new base class, called a TTask which handles all events from the CroquetHarness. Even the default interface in Croquet is implemented this way.&lt;br /&gt;&lt;br /&gt;An event is interpreted and redirected by the task object. The default task simply forwards the event to the initially selected object, which is just what happens now. &lt;br /&gt;&lt;br /&gt;Ultimately, any portal will be able to reinterpret the events via their own task objects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-114589344541406382?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/114589344541406382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=114589344541406382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/114589344541406382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/114589344541406382'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2006/04/tasks.html' title='Tasks'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-114555880607776649</id><published>2006-04-20T14:43:00.000-04:00</published><updated>2006-04-20T14:46:46.086-04:00</updated><title type='text'>Croquet 1.0 Beta SDK Released!</title><content type='html'>The new website is up and you can download the new Croquet 1.0 Beta SDK here:&lt;br /&gt;&lt;a href="http://www.opencroquet.org"&gt;http://www.opencroquet.org&lt;/a&gt;. You can download directly or via bittorrent. Thanks for your patience and support. Have fun with it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-114555880607776649?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/114555880607776649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=114555880607776649' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/114555880607776649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/114555880607776649'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2006/04/croquet-10-beta-sdk-released.html' title='Croquet 1.0 Beta SDK Released!'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-114462838250186164</id><published>2006-04-09T20:18:00.000-04:00</published><updated>2006-04-09T20:19:42.520-04:00</updated><title type='text'>This is a test</title><content type='html'>I am trying to determine if my blog is actually getting updated or not. I posted something yesterday that I still don't see. &lt;br /&gt;&lt;br /&gt;The next developer release is coming...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-114462838250186164?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/114462838250186164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=114462838250186164' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/114462838250186164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/114462838250186164'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2006/04/this-is-test.html' title='This is a test'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-114455262767470790</id><published>2006-04-08T23:16:00.000-04:00</published><updated>2006-04-08T23:17:07.690-04:00</updated><title type='text'>Something's Coming</title><content type='html'>--Leonard Berstein &amp; Stephen Sondheim&lt;br /&gt;&lt;br /&gt;Something's Coming&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Could be!  Who knows?&lt;br /&gt;There's something due any day;&lt;br /&gt;I will know right away,&lt;br /&gt;Soon as it shows.&lt;br /&gt;It may come cannon-balling down thru the sky,&lt;br /&gt;Gleam in its eye,&lt;br /&gt;Bright as a rose!&lt;br /&gt;&lt;br /&gt;Who knows?&lt;br /&gt;It's only just out of reach,&lt;br /&gt;Down the block, on a beach,&lt;br /&gt;Under a tree...&lt;br /&gt;I got a feeling there's a miracle due,&lt;br /&gt;Gonna come true,&lt;br /&gt;Coming to me!&lt;br /&gt;&lt;br /&gt;Could it be?  Yes it could.&lt;br /&gt;Something's coming, something good,&lt;br /&gt;If I can wait!&lt;br /&gt;Something's coming,&lt;br /&gt;I don't know what it is,&lt;br /&gt;But it is &lt;br /&gt;Gonna be great!&lt;br /&gt;&lt;br /&gt;With a click, with a shock,&lt;br /&gt;Phone'll jingle, door'll knock,&lt;br /&gt;Open the latch!&lt;br /&gt;Something's coming, don't know when--&lt;br /&gt;   but it's soon;&lt;br /&gt;Catch the moon,&lt;br /&gt;One-handed catch!&lt;br /&gt;&lt;br /&gt;Around the corner,&lt;br /&gt;Or whistling down the river,&lt;br /&gt;Come on, deliever&lt;br /&gt;To me.&lt;br /&gt;&lt;br /&gt;Will it be?   Yes, it will.&lt;br /&gt;Maybe just by holding still,&lt;br /&gt;It'll be there!&lt;br /&gt;&lt;br /&gt;Come on something, come on in,&lt;br /&gt;don'tbe shy,&lt;br /&gt;Meet a guy,&lt;br /&gt;Pull up a chair!&lt;br /&gt;&lt;br /&gt;The air is humming,&lt;br /&gt;And something great is coming!&lt;br /&gt;&lt;br /&gt;Who knows?&lt;br /&gt;It's only just out of reach,&lt;br /&gt;Down the block, on a beach,&lt;br /&gt;Maybe tonight....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-114455262767470790?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/114455262767470790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=114455262767470790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/114455262767470790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/114455262767470790'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2006/04/somethings-coming.html' title='Something&apos;s Coming'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111783421002889699</id><published>2005-06-03T17:23:00.000-04:00</published><updated>2005-06-04T10:30:20.726-04:00</updated><title type='text'>Reworking the system</title><content type='html'>I have been quiet for a while, primarily because I have had little to write about. I am reworking a lot of the low-level architecture of Croquet, and since I have been making so little apparent progress, there wasn't much to tell. I am making more progress now, and should have a simple version up in the next few weeks. &lt;br /&gt;&lt;br /&gt;The major change is that portals become the center of all of the UI experience. This includes using a portal for rendering the screen itself. Also, each portal will be responsible for it's own UI. This means that any portal can act as the view-screen, and you can change how Croquet works by simply providing a new portal which has a different interface. It should be pretty simple for people to use this, and I will have a number of examples. &lt;br /&gt;&lt;br /&gt;One way this should work is if you walk through a portal into another space, your interface will be a clone of the portal you just walked through. Snapshots become portals as well. This will also incorporate the filters/tasks model that I wrote about previously. This should be a much simpler and more powerful UI model.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111783421002889699?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111783421002889699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111783421002889699' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111783421002889699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111783421002889699'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/06/reworking-system.html' title='Reworking the system'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111405350859690746</id><published>2005-04-20T23:11:00.000-04:00</published><updated>2005-04-20T23:18:28.596-04:00</updated><title type='text'>In Boston ... again</title><content type='html'>I am working with David Reed to put together a simple TeaTime based system - no 3D, just a little counter that can handle replicated text enter events. &lt;br /&gt;&lt;br /&gt;I am also working on the architecture of the new UI framework. The main thrust is a generalized UI builder - as opposed to a specific UI. This will make it much easier for people to develop new applications, and new ways to use Croquet. This is the main reason I asked David to factor out TeaTime from Croquet. Basically, I am making so many changes to the places where TeaTime and the UI meet that I decided it would be much better and cleaner for me to target the TeaTime architecture than to have David try to figure out how to make TeaTime work with the relatively arbitrary interface system I built.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111405350859690746?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111405350859690746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111405350859690746' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111405350859690746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111405350859690746'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/04/in-boston-again.html' title='In Boston ... again'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111383618698093065</id><published>2005-04-18T10:51:00.000-04:00</published><updated>2005-04-18T10:56:26.980-04:00</updated><title type='text'>I'm Back...</title><content type='html'>With a combination of travel, being sick, and having nothing much to write about (actually a lot of interesting things - just nothing I can really tell anyone) here I am again. &lt;br /&gt;&lt;br /&gt;David Reed has factored out TeaTime into a standalone system. I am going to be making some significant changes to the UI design of Croquet, and since this is where Croquet has the most impact on TeaTime, it made sense for me to work with a blank slate - that is, bring Croquet to TeaTime instead of integrating TeaTime into Croquet. The end result should be a lot more robust and more in keeping with our overall goal of transforming the system around the TeaTime architecture. &lt;br /&gt;&lt;br /&gt;I am starting with a very simple text example, which, once it works, I will be sharing here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111383618698093065?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111383618698093065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111383618698093065' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111383618698093065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111383618698093065'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/04/im-back.html' title='I&apos;m Back...'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111045170328943883</id><published>2005-03-10T05:45:00.000-05:00</published><updated>2005-03-10T05:48:23.290-05:00</updated><title type='text'>Global Voices wiki</title><content type='html'>The document is now here:&lt;br /&gt; &lt;a href="http://cyber.law.harvard.edu:8080/globalvoices/wiki/index.php/Recommendations"&gt;Global Voices wiki&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- where you are invited to join the discussion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111045170328943883?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111045170328943883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111045170328943883' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111045170328943883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111045170328943883'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/03/global-voices-wiki.html' title='Global Voices wiki'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111044967901079419</id><published>2005-03-10T05:09:00.000-05:00</published><updated>2005-03-10T05:17:45.923-05:00</updated><title type='text'>The Infrastructure of Democracy</title><content type='html'>The following is a draft the we developed as part of the International Summit on Democracy, Terrorism and Security sponsored by the Club of Madrid. Most of the discussion that led to this document is (or will be) online. I am actually sitting in our presentation to the Summit now. Though this is still a draft, I think it is a very important document. This document is still being revised and will be officially posted so that anyone can comment on it. I will post the location that this e-discussion will occur as soon as I know it.&lt;br /&gt;&lt;br /&gt;-----------------------------------------------------------&lt;br /&gt;&lt;br /&gt;The Infrastructure of Democracy&lt;br /&gt;Strengthening the Open Internet for a Safer World&lt;br /&gt;March 11, 2005&lt;br /&gt;&lt;br /&gt;I. The Internet is a foundation of democratic society in the 21st century, because the core values of the Internet and democracy are so closely aligned.&lt;br /&gt;1. The Internet is fundamentally about openness, participation, and freedom of expression for all -- increasing the diversity and reach of information and ideas.&lt;br /&gt;2. The Internet allows people to communicate and collaborate across borders and belief systems.&lt;br /&gt;3. The Internet unites families and cultures in diaspora; it connects people, helping them to form civil societies.&lt;br /&gt;4. The Internet can foster economic development by connecting people to information and markets.&lt;br /&gt;5. The Internet introduces new ideas and views to those who may be isolated and prone to political violence.&lt;br /&gt;6. The Internet is neither above nor below the law. The same legal principles that apply in the physical world also apply to human activities conducted over the Internet.&lt;br /&gt;&lt;br /&gt;II. Decentralized systems -- the power of many -- can combat decentralized foes.&lt;br /&gt;1. Terrorist networks are highly decentralized and distributed. A centralized effort by itself cannot effectively fight terrorism.&lt;br /&gt;2. Terrorism is everyone's issue. The internet connects everyone. A connected citizenry is the best defense against terrorist propaganda.&lt;br /&gt;3. As we saw in the aftermath of the March 11 bombing, response was spontaneous and rapid because the citizens were able to use the Internet to organize themselves.&lt;br /&gt;4. As we are seeing in the distributed world of weblogs and other kinds of citizen media, truth emerges best in open conversation among people with divergent views.&lt;br /&gt;&lt;br /&gt;III. The best response to abuses of openness is more openness.&lt;br /&gt;1. Open, transparent environments are more secure and more stable than closed, opaque ones.&lt;br /&gt;2. While Internet services can be interrupted, the Internet as a global system is ultimately resilient to attacks, even sophisticated and widely distributed ones.&lt;br /&gt;3. The connectedness of the Internet – people talking with people – counters the divisiveness terrorists are trying to create.&lt;br /&gt;4. The openness of the Internet may be exploited by terrorists, but as with democratic governments, openness minimizes the likelihood of terrorist acts and enables effective responses to terrorism. fertile ground...&lt;br /&gt;&lt;br /&gt;IV. Well-meaning regulation of the Internet in established democracies could threaten the development of emerging democracies.&lt;br /&gt;1. Terrorism cannot destroy the internet, but over-zealous legislation in response to terrorism could. Governments should consider mandating changes to core Internet functionality only with extraordinary caution.&lt;br /&gt;2. Some government initiatives that look reasonable in fact violate the basic principles that have made the Internet a success.&lt;br /&gt;3. For example, several interests have called for an end to anonymity. This would be highly unlikely to stop determined terrorists, but it would have a chilling effect on political activity and thereby reduce freedom and transparency. Limiting anonymity would have a cascading series of unintended results that would hurt freedom of expression, especially in countries seeking transition to democratic rule.&lt;br /&gt;&lt;br /&gt;V. In conclusion we urge those gathered here in Madrid to:&lt;br /&gt;1. Embrace the open Internet as a foundation of 21st Century democracy, and a critical tool in the fight against terrorism.&lt;br /&gt;2. Recognizing the Internet's value as a critical communications infrastructure, invest to strengthen it against attacks and recover quickly from damage.&lt;br /&gt;3. Work to spread access more evenly, aggressively addressing the Digital Divide, and to provide Internet access for all.&lt;br /&gt;4. To protect free speech and association, endorse the availability of anonymous communications for all.&lt;br /&gt;5. Resist attempts at international governance of the Internet: It can introduce processes that have unintended effects and violate the bottom-up democratic nature of the Net.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111044967901079419?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111044967901079419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111044967901079419' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111044967901079419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111044967901079419'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/03/infrastructure-of-democracy.html' title='The Infrastructure of Democracy'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111006436682441563</id><published>2005-03-05T17:55:00.000-05:00</published><updated>2005-03-05T18:12:46.826-05:00</updated><title type='text'>Democracy, Terrorism and the Open Internet</title><content type='html'>Joi Ito has invited me to participate in a summit at the &lt;br /&gt;&lt;a href="http://english.safe-democracy.org/"&gt;International Summit on Democracy, Terrorism, and Security&lt;/a&gt; in Madrid, Spain next week. I will be involved in a workshop on Democracy, Terrorism and the Open Internet. &lt;br /&gt;&lt;br /&gt;The description of the workshop is:&lt;br /&gt;Despite their anti-modern ideology, some of the most violent terrorist groups have also been the most skilled in exploiting the advantages of the Internet. How can we stop this abuse of modern communications technology, while preserving the advantages and freedoms that it offers?&lt;br /&gt;&lt;br /&gt;This is interesting for Croquet because it goes directly to the heart of what Croquet is about. We want to build a system that allows for high bandwidth communication between individuals, ultimately fostering a much better understanding of the other's point of view. And we want it to be done securely. Why is this important? There are a number of very good reasons - protecting children from predators, protecting businesses from other businesses, protecting an individuals and a groups privacy from prying governments. Why is this a problem? Because bad guys can use it too. &lt;br /&gt;&lt;br /&gt;Perhaps I will learn a way to resolve this problem in Madrid. I doubt it. I think that the only real answer is to open the channels of communication even wider, rather than trying to figure out how to control them even more. Friends tend not to kill each other.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111006436682441563?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111006436682441563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111006436682441563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111006436682441563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111006436682441563'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/03/democracy-terrorism-and-open-internet.html' title='Democracy, Terrorism and the Open Internet'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111005490382308240</id><published>2005-03-05T16:34:00.000-05:00</published><updated>2005-03-05T17:51:03.473-05:00</updated><title type='text'>reverse order</title><content type='html'>Read the previous set of picture blogs from the earliest to the most recent for best effect.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111005490382308240?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111005490382308240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111005490382308240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005490382308240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005490382308240'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/03/reverse-order.html' title='reverse order'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111005484135488089</id><published>2005-03-05T15:34:00.000-05:00</published><updated>2005-03-05T15:34:01.353-05:00</updated><title type='text'>New Croquet Interface</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/5944747/" title="photo sharing"&gt;&lt;img src="http://photos7.flickr.com/5944747_239b08bfb4_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/5944747/"&gt;Wicket11&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;Here we have zoomed into the image such that the Wicket editor takes over the entire screen. This is interesting because we have completely replaced the old Croquet interface with a new CAD interface. This idea of "soft" interfaces is the basis of the next generation of Croquet updates. These interfaces will be quite easy to develop and can be easily added or removed. Should make the system far more flexible and powerful.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111005484135488089?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111005484135488089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111005484135488089' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005484135488089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005484135488089'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/03/new-croquet-interface.html' title='New Croquet Interface'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111005461897562256</id><published>2005-03-05T15:30:00.000-05:00</published><updated>2005-03-05T15:30:18.976-05:00</updated><title type='text'>Wire frame view</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/5944726/" title="photo sharing"&gt;&lt;img src="http://photos3.flickr.com/5944726_ede7e6126b_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/5944726/"&gt;Wicket10&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;Here I have selected the wireframe button which filters the view through the portal.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111005461897562256?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111005461897562256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111005461897562256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005461897562256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005461897562256'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/03/wire-frame-view.html' title='Wire frame view'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111005456080690250</id><published>2005-03-05T15:29:00.000-05:00</published><updated>2005-03-05T15:29:20.806-05:00</updated><title type='text'>Make more stuff</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/5944709/" title="photo sharing"&gt;&lt;img src="http://photos4.flickr.com/5944709_c244c4e03b_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/5944709/"&gt;Wicket09&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;Here we have used the new surfaces of the block to create even more objects. The original block is the parent frame, hence when we select it, all of the objects that we attached to it are also selected. If we select one of the children, only it and its children are selected. Notice that here I have also made a cylinder and a cone. This is done by selecting the circle base and either the 90 degree extrusion to generate the cylinder, or the point extrusion which was used to generate the cone. The other buttons are not working yet.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111005456080690250?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111005456080690250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111005456080690250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005456080690250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005456080690250'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/03/make-more-stuff.html' title='Make more stuff'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111005437646889388</id><published>2005-03-05T15:26:00.000-05:00</published><updated>2005-03-05T15:26:16.466-05:00</updated><title type='text'>Rotate the block</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/5944667/" title="photo sharing"&gt;&lt;img src="http://photos4.flickr.com/5944667_659f3d50ab_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/5944667/"&gt;Wicket08&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;Same as before.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111005437646889388?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111005437646889388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111005437646889388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005437646889388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005437646889388'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/03/rotate-block.html' title='Rotate the block'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111005434395869576</id><published>2005-03-05T15:25:00.000-05:00</published><updated>2005-03-05T15:25:43.956-05:00</updated><title type='text'>Select the new block</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/5943771/" title="photo sharing"&gt;&lt;img src="http://photos5.flickr.com/5943771_49d90c4a22_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/5943771/"&gt;Wicket07&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;Here we have selected the arrow button again and selected the block. By the way, notice that the grid on the floor is only visible through the portal as is the selection box around the block.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111005434395869576?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111005434395869576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111005434395869576' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005434395869576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005434395869576'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/03/select-new-block.html' title='Select the new block'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111005424083744223</id><published>2005-03-05T15:24:00.000-05:00</published><updated>2005-03-05T15:24:00.836-05:00</updated><title type='text'>Make a box</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/5943763/" title="photo sharing"&gt;&lt;img src="http://photos6.flickr.com/5943763_a63f7e0f78_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/5943763/"&gt;Wicket06&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;Here we have selected the rectangle base button with an associated 90 degree extrusion. When we click and drag on a surface, in this case the floor, we see a rectangle. Once we release the mouse, a new object is extruded. Unfortunately, I couldn't do a screen shot while the mouse was down so I don't have a shot of the rectangle on the floor.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111005424083744223?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111005424083744223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111005424083744223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005424083744223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005424083744223'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/03/make-box_05.html' title='Make a box'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111005391488372907</id><published>2005-03-05T15:18:00.000-05:00</published><updated>2005-03-05T15:18:34.883-05:00</updated><title type='text'>Move the object</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/5943758/" title="photo sharing"&gt;&lt;img src="http://photos7.flickr.com/5943758_4ce121cd80_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/5943758/"&gt;Wicket04&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;The selected object can be moved using the corner handles. The object moves parallel to the side the handle is on.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111005391488372907?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111005391488372907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111005391488372907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005391488372907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005391488372907'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/03/move-object.html' title='Move the object'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111005381109910213</id><published>2005-03-05T15:16:00.000-05:00</published><updated>2005-03-05T15:16:51.100-05:00</updated><title type='text'>Rotate an object</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/5943753/" title="photo sharing"&gt;&lt;img src="http://photos6.flickr.com/5943753_123c81315c_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/5943753/"&gt;Wicket03&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;The selected object can be rotated via the edge handles.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111005381109910213?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111005381109910213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111005381109910213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005381109910213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005381109910213'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/03/rotate-object.html' title='Rotate an object'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111005374411413099</id><published>2005-03-05T15:15:00.000-05:00</published><updated>2005-03-05T15:15:44.113-05:00</updated><title type='text'>Wicket Selection</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/5943750/" title="photo sharing"&gt;&lt;img src="http://photos5.flickr.com/5943750_c855c3d1e5_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/5943750/"&gt;Wicket02&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;Here the arrow button is selected, which means that when I click through the portal, the target object will get a new selection box.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111005374411413099?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111005374411413099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111005374411413099' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005374411413099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005374411413099'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/03/wicket-selection.html' title='Wicket Selection'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-111005366744217238</id><published>2005-03-05T15:14:00.000-05:00</published><updated>2005-03-05T15:14:27.443-05:00</updated><title type='text'>Wicket and things to come</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/5943752/" title="photo sharing"&gt;&lt;img src="http://photos4.flickr.com/5943752_2fca779148_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/5943752/"&gt;Wicket01&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;Here are a number of screen shots of Wicket. This is a very preliminary application, but made us decide to completely rethink the nature of the Croquet interface. It will be a dramatic and powerful change.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-111005366744217238?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/111005366744217238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=111005366744217238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005366744217238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/111005366744217238'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/03/wicket-and-things-to-come.html' title='Wicket and things to come'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110999551315588899</id><published>2005-03-04T23:01:00.000-05:00</published><updated>2005-03-04T23:05:13.156-05:00</updated><title type='text'>Everyone is sick - Standalone TeaTime</title><content type='html'>Just got back from Boulder, CO. So almost everyone I work with is sick now. I feel bad that I might have been the vector for some of them. I am feeling MUCH better now, though. &lt;br /&gt;&lt;br /&gt;So David Reed sent me a factored version of TeaTime. This is a stand-alone working version of TeaTime that is outside of Croquet. The main reason he did this was because I will be making some very large changes to the user interface architecture. This gives me the flexibility I need to do it properly and further, have the new interface be designed around TeaTime instead of the other way around.&lt;br /&gt;&lt;br /&gt;This has been a good week, except for everyone getting sick...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110999551315588899?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110999551315588899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110999551315588899' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110999551315588899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110999551315588899'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/03/everyone-is-sick-standalone-teatime.html' title='Everyone is sick - Standalone TeaTime'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110912555595662624</id><published>2005-02-22T21:24:00.000-05:00</published><updated>2005-02-22T21:25:55.956-05:00</updated><title type='text'>In Boston</title><content type='html'>I spent last week in Boston with Andreas Raab and David Reed. I came down with an awful cold while I was out there, but otherwise we made great progress. I am hoping we have something to show by the end of March.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110912555595662624?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110912555595662624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110912555595662624' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110912555595662624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110912555595662624'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/02/in-boston.html' title='In Boston'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110826573884318045</id><published>2005-02-12T22:32:00.000-05:00</published><updated>2005-02-12T22:35:38.866-05:00</updated><title type='text'>My Colony Memoir</title><content type='html'>I wrote The Colony after a few failed attempts at developing other games before it. I had been interested in the idea of virtual environments for some time, and was very interested in using the computer as a vehicle to build and explore these worlds. My first attempts at this were on an Apple II using simple pictures where you could move through the world by loading a new image based upon the user's decisions. I realized pretty quickly that this approach would simply not scale very well if only due to the limitations of space on a floppy disk. In a way, I turned to 3D as a compression technology - I could fit a (relatively speaking) huge world onto a single floppy disk.&lt;br /&gt;&lt;br /&gt;Once I decided on the technology, I began the process of "inventing" it. There were very few examples of realtime 3D available at the time, especially on a PC. Bruce Artwick’s flight simulator book. “Applied Concepts in Microcomputer Graphics” was released in 1984, while I was working on it, and it had some very useful ideas - though all applied to exterior scenes. I wanted an interior environment because it would better lend itself to an adventure style game. Also, I wanted to do something a bit different from the other games that had been done at that time.&lt;br /&gt;&lt;br /&gt;I created my first 3D "walkthrough" in 1983 on a PC-XT where I had some blocks in a scene and could walk around them in realtime. Not much more than Sutherland’s original 3D headmount demo to be honest. Interesting that I was working for Stelious Pezaris at the time, and he was one of the hardware designers for Sutherland’s headmount. Of course, what I was attempting with the game would require a bit more thought than just moving some cubes around. &lt;br /&gt;&lt;br /&gt;Soon after, I had heard of the Macintosh. I had seen the Lisa and by this time I was working with Richard Greenblatt at Lisp Machines Inc (actually a startup hosted by LMI), so I was very familiar with bit-mapped displays and windowing environments, but I was excited at the prospect of these technologies being made available in a “personal” computer. I got a loan from my parents and put $500 down to reserve the first machine that came in the nearby computer store – though I didn’t even know what it was called yet. What neither the store nor I knew at the time that there would be an allocation of a single machine to each store when the Mac actually shipped. They did uphold their promise of giving me the first machine in the store, though, and I received my Mac on February 11, 1984. It was an easy date to remember, as it was my birthday.&lt;br /&gt;&lt;br /&gt;I took it to LMI to show off, and I could tell it made a number of people very uncomfortable. LMI was currently in a bitter struggle with Symbolics for the small lisp machine market, and with Sun (and Apollo at the time) demonstrating similar capabilities with their workstations with the additional capabilities they had to run general purpose applications (no-lisp based) I am sure the Macintosh made them feel pretty squeezed from both above and now below.&lt;br /&gt;&lt;br /&gt;I was absolutely amazed by MacPaint. It was an easy and fun introduction to using the Mac, and at the same time set a standard for how one should write applications for the machine. At the same time, I figured out that there were no tools to program the Mac that would actually run on the Mac. You had to buy a Lisa to be able to develop Mac applications, and at the time, this was well beyond my budget. I could barely afford the Mac as it was. A bit later, Microsoft ported their Basic interpreter over, but this was not an acceptable language for building the kind of game I wanted to build. I thought about using Basic to write a compiler, but never got beyond the conceptual stages. &lt;br /&gt;&lt;br /&gt;I didn’t really get started until a company called Softworks ported a C compiler over. The only good thing about this compiler was that it actually ran on the machine. It was incredibly buggy and if I recall, I was responsible for most of the reports. One particular bug I ran into was the compiler would generate assembler code and would convert the variables to the C variable name by adding the letter “c” in front of it. Well, I had a variable called “lr” and this created a variable called “clr” in assembly. Of course, this was a 68K opcode, which meant either the assembler or the actual code choked on the result (I don’t remember which). I did succeed in getting the first 3D scenes running with this compiler, however.&lt;br /&gt;&lt;br /&gt;When the Macintosh shipped, it only had 128K of RAM and a single disk drive. The way you would program on this machines was something like the following:&lt;br /&gt;&lt;br /&gt;- Boot from the system disk &lt;br /&gt;- Switch disks and load the editor/code disk and edit the code.&lt;br /&gt;- Exit the editor, switch disks again and load the compiler disk and run the compiler.&lt;br /&gt;- Switch back to the code disk for the compiler to access.&lt;br /&gt;- Link the application, probably having to switch back to the compiler disk to do this.&lt;br /&gt;- Exit the compiler, attempt to run the executable and probably fail totally locking up the machine.&lt;br /&gt;- Repeat.&lt;br /&gt;&lt;br /&gt;The Mac probably asked for the system disk every so often during this process, but I may be thinking about how Windows still asks for the CD when you are trying to do something new on the PC.&lt;br /&gt;&lt;br /&gt;There was no debugger, or much of any other support tool at that point. But I could at least see some results after a time. My first “walkthrough” of a scene ran at about one frame every one or two seconds. I wasn’t terrible discouraged, as I knew I would be able to speed it up quite a bit. The real question was if it would be enough.&lt;br /&gt;&lt;br /&gt;I developed a number of concepts that allowed Colony to run pretty fast in the end. A few of them were:&lt;br /&gt;&lt;br /&gt;- I used 256 pseudo degrees. This meant that I could do a sin/cos transform by doing an 8 bit lookup with wraparound. That is, to rotate, just add or subtract from the 8-bit value and ignore overflows. Thus if we add 5 to 255 we would get 260 which was really 5. No need for testing or bit anding. I could then do a simple index into the array. The cos value was just the sin where we added 64 to the index. This meant I could use the same table – remember we only had 128K in RAM.&lt;br /&gt;- The next thing was to use a grid structure. What this meant was that I could compute a single edge of a grid and figure out the rest of the grid points by simply adding the resulting values. That is, I computed a dx and dy, and I could find every other single point of the grid by just adding or subtracting dx and dy from the last points. The only thing I had to deal with were the offsets of the original point.&lt;br /&gt;- I also had to deal with rooms and spatial clipping. I actually invented the idea used later for Wolfenstein of ray casting to determine visibility. This turns out to be a 2D problem for this kind of structure. I did not think about doing textures at this point. In any case, this was on a single bit system, so there wasn’t much I would be able to do with textures. The way this worked is I would traverse the grid from the user’s position and keep track of left and right clip edges. These went from the top to the bottom of the screen, so were relatively easy to manage. When I came to an opening in the walls – say a corridor going out to the left or right, I would recurse and continue on. &lt;br /&gt;- I made a simplifying assumption that the user’s eye-point was halfway between the floor and the ceiling. This meant that I only needed to compute the floor points and mirror them for the ceiling (a simple subtraction). To make the ceilings of rooms appear higher (or holes appear lower) I just extended the line of the wall up to the top of the screen. Since you couldn’t really look up, it appeared to be a very high ceiling.&lt;br /&gt;- All of the rest of the 3D objects (chairs, tables, creatures) were done with a regular 2D transform (they all moved and rotated in the plane). The exceptions were the eye-balls where I computed the radius scale and drew circles for the ball itself and ellipses for the iris and pupil. This was a very nice effect.&lt;br /&gt;- I also added 2D images on the walls, such as doors and graphics by subdividing the computed edges of the rectangle defining a given wall. That is, I split it into an 8x8 grid and then used these new points to draw the figure. This limited my choices to some degree, but I was able to generate a complete alphabet and a few additional characters – including the apple logo – this way. Of course, since I did a linear computation (x1 + x2)&gt;&gt;1, the grid was not quite in perspective, but since they were applied to relatively small areas, I doubt that anyone ever noticed.&lt;br /&gt;&lt;br /&gt;I laid out the first level map of the game by hand. The way it worked was each cross of the grid had 16 bits of information – I think I called these cells. Two bits defined the presence or absence of walls coming out of that point, another two bits defined presence of wall ornaments (the 2D images described above), one for each wall, another bit defining if there was a hole in the floor here, and another bit to determine if there was any “furniture”. The rest of the 16 bits was used as an extension mechanism such that if there was an object in the cell, there was an index to it. If there was a door in a wall, I had an extension mechanism that would define if the door was open or closed and, very important, where the door was linked to. It was not always the other side… It all seemed to fit in the 16 bits. What was really interesting was that the maps when saved to disk were about 4000 (4K) bytes in size. There were about ten maps altogether, so that the entire game world fit into about 50K bytes. When you added the 2D animations, I was still able to get the entire game onto one 400K byte floppy disk (single sided). I used a second disk for the sounds, and it was totally full. You didn’t need it to play the game, though.&lt;br /&gt;&lt;br /&gt;There could only be one 3D object in a cell at a time. This meant that I could not have two pieces of furniture overlapping, nor could I have a two creatures inhabit the same space. I also set up a collision system such that if I walked into a cell with a 3D object in it, it could trigger some kind of event. For example, if you attempted to enter a cell with a creature in it, I would have the creature turn to look 180 degrees from whatever direction you were looking. This meant that if you were to walk straight into a creature, it would turn around to “see” you. Of course, if you backed into the creature instead it would look 180 degrees AWAY from you. This was quite useful when you got into a corner – just turn away and back into the creature and it would then start wandering away.&lt;br /&gt;&lt;br /&gt;The algorithm the creatures used for seeing was something like a Bresenham’s line algorithm. If it’s “line of sight” happened to intersect the cell you were standing in, it would attack. Otherwise it turned and moved randomly. Since much of the game was played in long narrow corridors, creatures had a tendency to find you pretty quickly.&lt;br /&gt;&lt;br /&gt;Finally, I had both a basic 3D engine and a data set to apply it to. I finally succeeded in loading the new map while I was visiting with my future parents-in-law at their cabin on Lake Paradox. They must have thought I was crazy, spending all of my time inside programming on my Mac instead of enjoying the water. They were right of course. &lt;br /&gt;&lt;br /&gt;By this time, I had switched development systems to MegaMax C. This was a beautiful compiler, generating efficient and robust code. It also represented a turning point, where the project went from being a hobby to something more serious. The majority of the final game was written with this compiler.&lt;br /&gt;&lt;br /&gt;I knew exactly what I was going to see when the world first showed up, as I had done a number of hand drawn simulations of the scene. It was quite a thrill to see the real thing, however. Even the motion through the scene worked. I started in a hallway looking down the hall toward where the hall took a turn to the right. I also knew enough about the code at this point that if I were to go to the end of this hall and try to turn the corner, I would crash. I just couldn’t resist however, and had to do it. I walked down the virtual hallway, turned the virtual corner, and really crashed. But it was extremely interesting that at no time did I ever consider not doing it. I just had to see what was on the other side of that corner. This is when I really started thinking I might have something really interesting.&lt;br /&gt;&lt;br /&gt;This was the summer of 1984. Teri and I were married in October that year.&lt;br /&gt;&lt;br /&gt;As I mentioned, the first map was done completely by hand and took a very long time not just to create, but even more time to digitize, as I had to follow the rules I described above. I realized that first, there was no way I wanted to do that again, and second, I was really interested in using the system to develop a series of games, not just one. This meant that I needed some kind of CAD tool to develop these worlds. I created a 2-D CAD system, that I called the MapMaker that let me click to add walls and bring up dialogs to extend the cell definitions. This turned out to be critical for the project later. What was interesting was that once I had the MapMaker working, I realized that it generated the worlds flipped left to right – a mirror image of the actual 3D version. Since I was writing it for myself, I decided to leave it as is. In the end, I had to create all of the maps for the game this way. It probably would have taken me a few hours to fix it, but I guess I had other priorities.&lt;br /&gt;&lt;br /&gt;One problem that I had to solve was interactions with objects in the world. I had a number of control panels, elevator buttons, etc. in the game where I needed some way to represent and interact with them. I decided to do this with 2D animation. I had bought a copy of VideoWorks from a company called MacroMind and saw most of what I needed with that. I read in one of the Mac magazines that they were planning a progammable version of VideoWorks. Since I really needed this, and did not want to develop it myself, I made a pilgrimage to Chicago where MacroMind and Marc Cantor were. This was the summer of 1985. I had read about them in MacWorld magazine and was extremely impressed with everything I saw there. They had pictures of the team zooming around their office on their chairs and of course their product was really amazing.&lt;br /&gt;&lt;br /&gt;The company was located in a small storefront with a nice old wooden floor. I thought it was pretty hip. I met with Elliot Axelrod and Marc and explained what I was doing and what I needed. Unfortunately, they told me that VideoWorks Interactive, (I think that was what they were calling it) would not be available for some time. In fact, I don’t think they had even started working on it yet. &lt;br /&gt;&lt;br /&gt;Marc was quite an interesting character then – he still is, but then it was fresh and he didn’t irritate me as much as he would in later years. Of course he made fun of what I was doing – I guess he could, he had a hot product on the market at the time and I was nobody. I remember that Elliot looked a bit uncomfortable with it. Anyway, I made my first pitch of my system as a game development tool. They were selling the Mac version of MazeWars at the time, and I suggested using my stuff for the next version. Marc did not seem to be very interested in that, so I left the place a bit humbler and quite frustrated. Not only did they not have the technologies I needed, but someone whom I had admired had trashed my work. Not the first time, and it hasn’t been the last – Marc even did it to me again on stage at MacWorld Tokyo about eight years later. &lt;br /&gt;&lt;br /&gt;The upshot was I needed to develop my own interactive animation system. This turned into my first serious object oriented project. I was still coding in C, but I needed a way of managing the animated objects and treating them as discrete entities in the scene. I wound up developing a very nice little package that let take pictures I had created in MacPaint and drop them into the editor. Then I could add additional images to each of these objects so that they could animate, and I could add links between the objects so that one object could act as a trigger for another one – or for the external game world. This tool became critical for linking all of the spaces together and developing all of the control panels and widgets I would need later.&lt;br /&gt;&lt;br /&gt;At about this time, I upgraded my Mac to a 512K machine. This allowed me to actually keep parts of the system resident all of the time in a RAM disk – a virtual disk drive that existed in the extended memory. This dramatically enhanced my development performance.&lt;br /&gt;&lt;br /&gt;Soon after this, I made my first trip to MacWorld Boston with the intent of finding a partner/publisher for the game system. I took a relatively naïve approach to this effort. I had written a document that described the technology and a number of game ideas that could be created using the system. I also had a number of demo disks that I took with me to pass out. Interesting note was that I saw Richard Stallman in front of the building passing out flyers to boycott Apple. I was at LMI when he was single handedly reverse-engineering the entire Symbolics system so that LMI could keep up with them. We had gone out to many late night Chinese dinners in Chinatown over the time I worked there and he had even introduced me to a Xerox Alto where he taught me how to use a mouse. That is, I tried to pick it up and he slapped my hand down and said – “keep it on the table!” We had even discussed writing some kind of game together, though this never went any further than a discussion or two. We even discussed the idea of giving software away for free. I was opposed to it, so these discussions tended to be a bit more heated. So when I saw him, I thought – hey an old friend! I’ll say hello. Which I did. He looked at me without a hint of recognition and handed me a flyer. Yet another humbling experience.&lt;br /&gt;&lt;br /&gt;The largest game company at the show was Mindscape and I decided to start at the top. I walked into their large booth and tried to talk to some of the people there. I was able to get the attention of one of the people there, Scott Berfield, who turned out to be a producer there. I convinced him to let me demo the system to him on one of the Macs they had set up for the show. You can imagine that given how long it took to boot a Mac and get a game running properly on it, it was something of a big deal to take it out of service demoing for a period of time. To his credit, he gave me a shot and I showed him what I had. He was pretty excited at what he saw and asked me to come back to the booth later when one of the company vice presidents would be available. Finally, someone was interested in my work. &lt;br /&gt;&lt;br /&gt;While I waited for the meeting, I visited the other game companies, including Spectrum Holobyte. This was a relatively new startup and had just released a submarine simulation game called Gato. Since they were a bit smaller, it was easier to meet with their decision makers. Again, the reaction was terrific. They wanted to work with me, and more than that, they had just licensed the rights to a book and movie that would be appearing soon and they thought would make a great game. Now I was getting somewhere. A game company with an idea of how to apply the technology to their own content. This was what I was looking for.&lt;br /&gt;&lt;br /&gt;I stopped back at the Mindscape booth to meet with their VP – Sandra Schneider. Scott took me back to meet her and introduced us. I told her about the technology I had developed and her only question was “Do you have a game?” I told her that I didn’t – that I had developed a technology that automates the process of developing games. Her response was simple – “Well, come back when you have a game”. She had no interest in seeing the demo, nor in listening to anything else Scott or I had to say. The meeting was over. Scott apologized as we left, but I felt OK as I thought I might have a partner over at Spectrum. &lt;br /&gt;&lt;br /&gt;I don’t remember much about the Spectrum guys except that they were excited about their license and how it would be the next James Bond franchise. That was fine with me. About three months later, they sent me a reviewer’s copy of the book, which I read in one day. It was terrible. It was a terrible book, and it was a terrible vehicle for a game. I wrote up a few ideas and sent it to them, but about this time they started having financial problems and I think they were sold to another company. I never heard from them again. I also sent demo disks to Electronic Arts and Broderbund. Producers from both companies contacted me soon after and we had a number of discussions back and forth, but nothing ever quite materialized out of this.&lt;br /&gt;&lt;br /&gt;The writing was on the wall – Sandy was right. No one was interested in game technology; they just wanted games. So now that I had the game engine, it was time to develop one. I would have to eat my own dog food. &lt;br /&gt;&lt;br /&gt;I had a number of ideas that I had been working on. A simple one was the MazeWars clone with a better renderer. In hindsight, this might have been the right move, as later games have demonstrated. I also had prototyped a tank game, and a game loosely based on an Indiana Jones type character called “Valley of the Kings”. I had worked with some friends on this, one to help with the coding and another who happened to be an Egyptian Archaeologist. I went so far as to model the actual tombs in Luxor and had started thinking about a mega-tomb for some long lost pharaoh. The game would start at the Oriental Institute at the University of Chicago, where I received my degree in Mathematics. It was a very cool building and would be fun to model. I started working on a story line where you were received a letter calling for you to rescue your former professor and his beautiful daughter. You had to grab some artifacts from the museum before you left and of course there was a bad guy already there trying to prevent you from leaving. &lt;br /&gt;&lt;br /&gt;The other game was you would play a Space Marshal and would have to save a colony that had been set up on some distant planet. The actual storyline emerged from this basic concept and the limitations of the technology I had to work with.&lt;br /&gt;&lt;br /&gt;But, that is as far as I got with it. My friends dropped out after a bit, they had real lives, and I also had some other priorities.&lt;br /&gt;&lt;br /&gt;This was 1985. Teri and I had started looking for a house because our first child was about to be born, but we found that we couldn’t afford anything reasonable in Boston, or even at a significant radius from the city, on my consultant pay. We had looked at the North Carolina Research Triangle as a possibility, so I contacted a recruiter and found a job working at the Thomas Lord Research Center working with robotic tactile and force torque sensors and telepresence. It was a lot of fun and required a great deal from me, so I parked the game for a while. After about a years absence, I dusted off the game and picked up where I left off. I started work on the real thing.&lt;br /&gt;&lt;br /&gt;Now the problem was turned around – I had to use the tools I had made to develop yet another application. All further development of the tools was at the service of getting the game done. There would be no more general purpose solutions. &lt;br /&gt;&lt;br /&gt;By this time LightSpeed C had come out and changed everything for me. It wasn’t just a compiler, but a complete C development environment. This compiler was created by Mike Kahl, who built a really beautiful system. It made programming the Mac even more fun. &lt;br /&gt;&lt;br /&gt;Also, I had purchased a huge 20-megabyte disk drive that really improved the development process. It was amazing to write some code and have it &lt;br /&gt;&lt;br /&gt;The first decision was of course, which game? I went with the space opera for no other reason than I realized I couldn’t make people in the world. I had certainly tried. I had created some bit-mapped people that would respond when you put the cursor over them. One of them would raise his hands when you pointed at him. The problem was that the bit-mapped characters in the 3D rendered environment just didn’t fit. That meant only one thing – alien life forms.&lt;br /&gt;&lt;br /&gt;I had the game start with a communication to you, the Space Marshal about losing contact with the colony and a request to go investigate it. On the way there, your ship collides with a black hole (remember, it was a game) and you crash land on the planet. I had digitized a single strain from Holst “The Planets” for the beginning credits and game introduction and played this little clip over and over until you crashed. Dah-dah-dah-daah, daah, dah-dah-daaah. You awake to find yourself in darkness. Your ship’s reactor cores are destroyed, so you too are stranded on the planet. &lt;br /&gt;&lt;br /&gt;You could see the ship – white on black, and your first task is to figure out how to turn on the lights. I made this part of the game non-threatening. No bad aliens anywhere. You had a nice environment to get used to the motion of the game and a number of puzzles to solve to get off the ship. This is where some of the most sadistic problems were. The game was not particularly well balanced. Here is a small list of them:&lt;br /&gt; &lt;br /&gt;- The button for the planet buster bomb and the lights looked identical. One was on the left of the control panel, the other on the right.&lt;br /&gt;- There was a smoking cigarette on the wardroom cabinet. If you picked up the cigarette you would die.&lt;br /&gt;- There was a jail cell on the ship – you are a Marshal remember? The floor plates were electric pads that would shock and potentially kill you.&lt;br /&gt;- There were vents above the reactor that you could fall through. This wouldn’t necessarily kill you, but could cause damage.&lt;br /&gt;- The airlock was the worst puzzle of all for some reason. Many, many people took a long time to figure out that you had to close the first airlock door behind you before opening the next one in front of you.&lt;br /&gt;- Many people died because they did not put their space/power suit on before they left the ship.&lt;br /&gt;&lt;br /&gt;I, of course, provided no hints as to why they died. My theory was that if you died, how could you possibly know how it happened? My theory was wrong. Remember that the ship was supposed to be the “safe” area for the game player. It got harder after this. Much of the problem was that I was totally paranoid about people completing the game in a couple of hours and demanding to get their money back. I figured I had to make it interesting, but it became somewhat sadistic as it developed. Lot’s of pointless hallways, rooms you could get into, but not out of, infinite hallways that looped back on themselves. It was very mean. People seemed to enjoy it though.&lt;br /&gt;&lt;br /&gt;I knew that the majority of the game would take place in a colony, and had decided that it would be built underground. No windows to worry about. I also decided to add a Battlezone like section at the beginning. One of the employees at LMI had purchased one of the stand-up versions of this game and I had played it for days. I got so good at it that I could predict every single action that occurred in the game and the only reason the game would end is I would get tired and walk away from a full rack of lives. I can still play it pretty good, but the controllers tend to be broken on the machines that are still left.&lt;br /&gt;&lt;br /&gt;Once you “escaped” the ship, you found yourself on the surface of the planet. Here you met your first aliens. These were crab like creatures with jaws that opened and closed as the moved toward you. While you were fighting these off, you also had to find the entrance to the underground colony. This turned out to be a bit more difficult than I thought it would be. I had made the planet wrap around such that if you went due west, you would come back to your original position from the east, and if you went due north, you would wrap around from the south. In short, the planet was shaped like a torus. I then placed the Colony such that it was exactly north-east from the ship. This meant that if you were to go in any other direction, you might find it, but it would take some time. Also, the “landmarks” were randomly generated as you walked through the scene, so you could not even rely on these to help you figure out where you were and how to get where you wanted to go. People came up with an incredible number of methods to find the colony, most of which were wrong. A favorite was someone suggested that you go north with just a slight angle east (or west). This was the barber-pole method where you would create a spiral around the torus. This would work every time, … eventually. The steeper the angle, the longer it would take to get there. Many people assumed that the entrance moved every time they played the game. It never did.&lt;br /&gt;&lt;br /&gt;Once in the colony, you the Space Marshal, had to figure out what was going on. There were no people in sight and there were quite a number of alien creatures that appeared to be angry at you. What had happened – stop me if you have heard this one before – was the colonists had been working on teleportation technology and had accidentally opened a portal between another dimension and this one. One of the alien queens had teleported in and had started decimating the colonists, who had no power suits after all. They realized pretty quickly that they were all going to be destroyed, but they also noticed that the creatures didn’t seem to recognize a human in deep freeze as a problem for them. There were six children in the colony and they were all placed in cryogenic chambers. Your job was simple, rescue the children, repair your ship’s reactor, get off the planet, and blow the damn thing out of space. &lt;br /&gt;&lt;br /&gt;To do that, you needed to find the children, find the forklift to carry them out of there, find the teleportation pods that were needed to rescue some of the children, and find a working reactor core to repair the ship. Easy. No. &lt;br /&gt;&lt;br /&gt;Once I had something more of a game to show off, I revisited MacWorld Boston. Again, I approached Scott Berfield with my wares, and this time, magic happened. Sandy Schneider saw the demo of the game, and instantly decided that Mindscape would be interested. It looked like I finally had a publisher. Scott would be the producer, and after a bit of negotiation, we set off to make the game.&lt;br /&gt;&lt;br /&gt;By this point, I had most of the game design done, but was simply a great producer and really helped to make it great. He had a number of ideas and suggestions most of which I incorporated. He was totally supportive and made sure that nothing got in the way of making the game as good as possible. &lt;br /&gt;&lt;br /&gt;As helpful as Scott and the guys at Mindscape were, however, I still did every bit of the programming and created the artwork and the sounds. The only thing I did not do in that game were two pictures of the game player seen in a mirror – one with the power suit off and one with it on, and one of my producer’s screaming his head off used when you died. I think people heard this particular sound more than the rest put together. Virtually every other bit on the disk was mine. &lt;br /&gt;&lt;br /&gt;The next year was used to refine the game and game play. Every element was revisited, bugs were eliminated, puzzles added (never deleted of course). I still have the notebooks picturing how I designed all of the objects in the world. Outside of the maps, I digitized everything by hand. &lt;br /&gt;&lt;br /&gt;I had been working in my office at home on the game. This was balanced with two children, my wife (who also needed some attention, but was a saint – everyone else said so), and my “real” job. Having toddlers made things a bit more interesting. They were fascinated by the computer. My older son wanted to try it out himself. He had seen me put the floppy disks into the drive many times, and had determined, correctly, that that was how you used a Macintosh. Unfortunately, he put the disk in upside down. It turned out that there was simply no way to remove a disk that has been inserted this way. Also, Apple had purposely designed access to the interior of a Mac to be a difficult operation. I was in trouble, because I didn’t have one of the special long torx screwdriver tools that Apple required to open the case. But I did have a long triangular file that by some miracle just happened to fit the screws. Once I had access to the outside of the disk drive, it was a simple matter to eject the disk. Of course, I had to repeat this process the next day before my son got the hint that playing with daddy’s computer wasn’t a great idea.&lt;br /&gt;&lt;br /&gt;When it came time for the sounds for the game, I had to look many places. The sound quality available to me wasn’t the greatest, both because it had to fit on a disk and because I didn’t have great digitizing equipment. Some of the sounds I found around the house. I got the sound of toilet flushing by putting a microphone into our toilet at home (not in the water) and flushing. For many of the other sounds I used, I did what many artists have done since. I sampled. The sound of the forklift came from the movie “Aliens”. Another sound was a digitized Star Trek phaser greatly slowed down and reversed. Yet another was the sound of Dave Bowman’s voice as he fell into the star gate in 2001 (“My god, it’s full of stars”). This was used in the 2001 memorial room.&lt;br /&gt;&lt;br /&gt;When it finally came time for quality assurance and game play testing, I think Colony may have been the most robust game Mindscape ever tested. They found a total of 12 bugs in the thing. The best anyone had ever done before that was well over 100. I attribute this to a number of factors. First, the development tools I created greatly reduced the potential for bugs. The tools were quite robust and had been in development for a number of years. The other thing was I simply hate bugs. At the same time, to me, one of the best adventure games in the world is tracking down and killing a bug in my code. I simply can’t sleep until I have solved a bug problem. &lt;br /&gt;&lt;br /&gt;One of the worst bugs I ever had to deal with was in this game. Once the game player made it to the Colony, every so often the system would crash and burn at totally random times. You might be playing for ten minutes when it happened or ten hours, but it would just die in a totally random way. I couldn’t trace it. In fact, it seemed like the code was extremely clean. I spent two or three weeks going over the code, rewriting to clarify, or eliminate potential problems. One of the things you learn from this process is that bugs can be a wonderful tool to improve the overall quality of the system.&lt;br /&gt;&lt;br /&gt;The system would ultimately crash even if you just stood in one place and didn’t do anything at all. This made me realize that it probably wasn’t something that the game player was doing, but perhaps one of the autonomous creatures that inhabited the world. Finally, I created a real-time map of the world where I could track the movement of the creatures. What was supposed to happen was that the creatures would wander around the world, pretty much at random. When they hit a wall, they would simply turn in another direction. The same thing would happen if they hit another creature… except one of the creatures was special. There was a slow-moving slug like creature that knew how to follow the game player’s trail. When it came across another creature, rather than bouncing off and risk losing the trail, I made it so that it would destroy the other creature and stay on target to find you. This worked great, except that on some rare occasions, this slug could do to a wall what it did to the other creatures. That is, it could delete it. This meant that the virtual door was now open for this creature to explore the rest of the RAM on the Macintosh, deleting and modifying it as it went along. Of course, it was just a matter of time before it found some juicy code. In other words, the bug was a REAL bug.&lt;br /&gt;&lt;br /&gt;Many people have suggested that the Colony was based upon a particular movie or story. The reality was that I had taken elements from perhaps hundreds of different stories I had read. That’s the way it often works. Some of the designs came from movies at the time. The teleportation pods were similar to the ones used in The Fly. The forklift was a poor-man’s version of the heavy lifter at the end of Aliens, though I had the story for the game done well before these movies appeared. Actually, an article appeared in one of the Mac magazines that listed about twenty different sources of ideas that I had used in writing the game. I was not aware of more than half of these, so perhaps I stole the ideas from the same place they did. (I actually had one colleague at work anonymously leave this article on my desk with every single one of these items underlined, as if to say – you’re not so creative, look who you stole from). And for those elements I did actually “borrow” – so what? As my friend Mike Backes likes to quote “good artists create, great artists steal”. &lt;br /&gt;&lt;br /&gt;There must be something pretty compelling about teleporting alien creatures and off-world colonies. It seems like these ideas get used and reused on a regular basis. They are neat ideas after all, and have been used to create some of the most interesting worlds ever imagined. They are worth revisiting.&lt;br /&gt;&lt;br /&gt;The last part of the game was developed with Peter Sills replacing Scott Berfield as producer. Scott had moved on to Sega. Peter was great and makes a cameo appearance in the game as death. He was pretty enthusiastic when he took over, wanting me to add a whole host of new features. For my part, I was ready to ship this thing, and was getting a bit concerned that as is, it was a bit over the top. Turned out that I was WAY over the top.&lt;br /&gt;&lt;br /&gt;The Colony shipped in 1988 and went on to win “Best Adventure Game of the Year” from MacWorld magazine and more recently “The Top Ten Mac Gaming Thingies of the Last 1000 Years” http://www.macworld.com/2000/01/bc/gamesgameroom/  and launched my next career as an entrepreneur. Mike Backes got hold of a pirate version of the game before it was released and brought me on board to work on James Cameron’s movie “The Abyss”, which was funny, because I had borrowed somewhat from his previous movie “Aliens” for the game. I developed a virtual camera and set using the same tools I had developed for the game.&lt;br /&gt;&lt;br /&gt;I also got a phone call from Tom Clancy, author of “Hunt for Red October” among others. He happened to be one of my favorite authors. I was even reading “Clear and Present Danger” at the time, so it was kind of strange to be talking to him. Interestingly, he never asked for hints – just wanted to talk about the ideas behind the game and where this technology would be going someday. Tom became a great friend and was my first outside investor in my next venture, Virtus Corporation, where I wrote Virtus Walkthrough. Later, we founded Red Storm Entertainment together where he and the team we had put together created Rainbow Six, one of Tom’s best books and one of the top game franchises in history. We designed another game together, called “Derelict”, which I think has the makings of another classic. I doubt this will ever get made though.&lt;br /&gt; &lt;br /&gt;The Colony turned into a pretty good game, though it was much harder than it should have been. Many people took months of daily play to complete it. I was told by more than one person that I had caused their divorce. The problem was that I was totally paranoid. I mentioned that I was concerned that people would complete the game in only a few hours. It is interesting to note that even I couldn’t complete it in less than about seven hours of sustained game play. In some ways, I really went too far with it. I guess I made up for that when I helped develop “Timeline”, a game where people really could complete it in two hours and really did ask for their money back. Now I think I have a pretty good idea of where the balance should be. Perhaps I will do another one someday.&lt;br /&gt;&lt;br /&gt;Now I am developing a meta-tool. I am working on a new operating system called Croquet with Alan Kay, the father of the personal computer, David Reed whom Alan calls “the ‘slash’ in TCP/IP”, and Andreas Raab, one of the system architects for Squeak. Croquet is an open source project that we hope will foster a rebirth in innovation on the PC, just as Alan’s work helped create the Macintosh, David Reed’s helped create the Internet, and I would like to think that my work helped create modern computer games. I hope Croquet fosters the same excitement in people that the my first Macintosh did for me, over twenty years ago. It is time for something new.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110826573884318045?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110826573884318045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110826573884318045' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110826573884318045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110826573884318045'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/02/my-colony-memoir.html' title='My Colony Memoir'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110768924648218135</id><published>2005-02-06T06:25:00.000-05:00</published><updated>2005-02-06T06:27:26.483-05:00</updated><title type='text'>Back from Japan</title><content type='html'>I am home, and starting to fix up a few loose ends before diving into some deep coding. I am cleaning up the Wicket support code I wrote, and starting to post it. The next thing is to rework a lot of the Wicket architecture. I learned a great deal about how to manage the UI for Croquet in developing this little prototype, so you should expect some significant changes to the system over the next month or so. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110768924648218135?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110768924648218135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110768924648218135' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110768924648218135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110768924648218135'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/02/back-from-japan.html' title='Back from Japan'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110768906326127349</id><published>2005-02-06T06:24:00.000-05:00</published><updated>2005-02-06T06:24:23.260-05:00</updated><title type='text'>Wicket</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/4343400/" title="photo sharing"&gt;&lt;img src="http://photos3.flickr.com/4343400_3b721e86cb_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/4343400/"&gt;Wicket2&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;This is a simple screen shot of the Wicket throught-the-window CAD editor. I am creating a rectangular box here. I had more shots of this, but there is a bug in the Squeak export... facility that caused the rest of the images to have a dialog box overlaying them. &lt;br /&gt;&lt;br /&gt;Note the grid overlaying the ground that is only visible in the window. Also, the rectangle and selection box are only visible in the window as well. These are "ghost" objects, as described in a previous post.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110768906326127349?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110768906326127349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110768906326127349' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110768906326127349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110768906326127349'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/02/wicket.html' title='Wicket'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110662872562854340</id><published>2005-01-24T23:47:00.000-05:00</published><updated>2005-01-25T06:41:08.066-05:00</updated><title type='text'>On vs. Off</title><content type='html'>English is weird. Even the word "weird" is weird, as it violates the "i" before "e" except after "c" rule. &lt;br /&gt;&lt;br /&gt;In the previous post, I wrote "On to Japan". I thought about this and realized that I should have written "Off to Japan", and started wondering why either one is appropriate to some degree. We say "on to Japan" when we mean we are continuing our travels "onward". And we say "off to Japan" when we are talking about leaving the current location as in "I am off (from here) to Japan. They are very nuanced differences, but they use exact opposite words to denote these differences - on vs. off.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110662872562854340?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110662872562854340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110662872562854340' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110662872562854340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110662872562854340'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/01/on-vs-off.html' title='On vs. Off'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110662840722008649</id><published>2005-01-24T23:44:00.000-05:00</published><updated>2005-01-24T23:46:47.220-05:00</updated><title type='text'>On to Japan</title><content type='html'>I leave tomorrow morning for Japan and the C5 conference. I will need to write a lot of my demo on the plane. There was just a lot of support code to write before I could actually work on the real thing. However, I think the end result will be nice. There are a lot of nifty new ideas in this. More to come...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110662840722008649?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110662840722008649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110662840722008649' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110662840722008649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110662840722008649'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/01/on-to-japan.html' title='On to Japan'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110646095827681201</id><published>2005-01-23T01:14:00.000-05:00</published><updated>2005-01-23T01:15:58.276-05:00</updated><title type='text'>Now the real work begins</title><content type='html'>I have completed everything I need to be able to start actually writing the object creation/edit code in Wicket. All of the support infrastructure is in place and looks very good. So now all I have to do is generate a few tasks based upon the state of the buttons and the user's actions. Should be pretty easy...&lt;br /&gt;&lt;br /&gt;And it has to be done by Tuesday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110646095827681201?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110646095827681201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110646095827681201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110646095827681201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110646095827681201'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/01/now-real-work-begins.html' title='Now the real work begins'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110641902588699318</id><published>2005-01-22T13:28:00.000-05:00</published><updated>2005-01-22T13:37:05.886-05:00</updated><title type='text'>Radio Buttons</title><content type='html'>In writing the new task based CAD system, I have had to create a number of extensions to Croquet. One of these is radio buttons. These are used to specify that only one button can be selected at a time. This requires that you use the two state button mode, because it switches between them to signify what button is selected. I may update this later to do something different for one state buttons with shading, but I don't have time right now. To use this, do the following:&lt;br /&gt;&lt;br /&gt;	extrudeButtons := TButtonHolder new.&lt;br /&gt;	extrudeButtons buttonWidth: buttonWidth.&lt;br /&gt;	extrudeButtons extent:1.0@1.0.&lt;br /&gt;	extrudeButtons radioOn.&lt;br /&gt;	self addChild:extrudeButtons. "add the button holder to the current frame"&lt;br /&gt;&lt;br /&gt;	bttn := self button:'extrude90.bmp' with: 'extrude90Invert.bmp'.&lt;br /&gt;	bttn objectName:#extrude90.&lt;br /&gt;	extrudeButtons addChild: bttn.&lt;br /&gt;&lt;br /&gt;	bttn := self button:'extrudePoint.bmp' with: 'extrudePointInvert.bmp'.&lt;br /&gt;	bttn objectName:#extrudePoint.&lt;br /&gt;	extrudeButtons addChild: bttn.&lt;br /&gt;&lt;br /&gt;	bttn := self button:'extrudeRound.bmp' with: 'extrudeRoundInvert.bmp'.&lt;br /&gt;	bttn objectName:#extrudeRound.&lt;br /&gt;	extrudeButtons addChild: bttn.&lt;br /&gt;&lt;br /&gt;	bttn := self button:'extrudeCurve.bmp' with: 'extrudeCurveInvert.bmp'.&lt;br /&gt;	bttn objectName:#extrudeCurve.&lt;br /&gt;	extrudeButtons addChild: bttn.&lt;br /&gt;&lt;br /&gt;	extrudeButtons extent: buttonWidth@(buttonWidth*4).&lt;br /&gt;&lt;br /&gt;This code will create a button holder that is four buttons tall and one wide. You can query which button is currently selected by sending:&lt;br /&gt;&lt;br /&gt;     bttn := extrudeButtons radioButton.&lt;br /&gt;&lt;br /&gt;Here I have set the name of the button to be a token, so I actually use it this way:&lt;br /&gt;&lt;br /&gt;    extrude := extrudeButtons radioButton objectName.&lt;br /&gt;&lt;br /&gt;This code has been posted as change set 0205RadioButtons.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110641902588699318?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110641902588699318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110641902588699318' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110641902588699318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110641902588699318'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/01/radio-buttons.html' title='Radio Buttons'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110624639385477363</id><published>2005-01-20T13:35:00.000-05:00</published><updated>2005-01-20T13:39:53.856-05:00</updated><title type='text'>Picking Overlays</title><content type='html'>I just added the ability to pick through an overlay portal. You can try it out with the rear view mirror (ctrl-R to turn it on/off). I will generalize this after the C5 conference so that you will be able to manage multiple Croquet sessions in the same world. You can look at how to do this right now by examining the TOverlayRearView class, which is actually quite small. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110624639385477363?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110624639385477363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110624639385477363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110624639385477363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110624639385477363'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/01/picking-overlays.html' title='Picking Overlays'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110600645354638601</id><published>2005-01-17T18:47:00.000-05:00</published><updated>2005-01-17T19:00:53.546-05:00</updated><title type='text'>Serious Play</title><content type='html'>I am reading a very interesting book called &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0875848141/qid=1106005706/sr=2-1/ref=pd_ka_b_2_1/103-4224877-0725464"&gt;Serious Play&lt;/a&gt; by Michael Schrage, a research associate at the MIT Media Lab. It really defines the opportunity for Croquet inside of the corporation. It speaks to the idea of prototyping as the basis of a groups communicating and understanding and presents this as critical for innovation. More to come...&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110600645354638601?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110600645354638601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110600645354638601' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110600645354638601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110600645354638601'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/01/serious-play.html' title='Serious Play'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110583186844349940</id><published>2005-01-15T18:06:00.000-05:00</published><updated>2005-01-15T18:31:08.443-05:00</updated><title type='text'>Need for speed</title><content type='html'>There was a very bad bug in Jasmine which caused the performance of the system to degrade pretty rapidly whenever you were connected. This problem has been around for some time. I was worried that it might be something having to do with the basic architecture of the system, which could be a very bad thing. On Thursday, Andreas and I decided to figure out the problem and fix it. &lt;br /&gt;&lt;br /&gt;We could literally watch the frames per second drop over time, especially when both users were wandering around. Interestingly, a full garbage collect would clean up the problem for a short time, then it would begin to get slower again. We performed a number of message tallies on the system and we found that the system was spending more and more time inside of the garbage collection. It would get so bad that we could see it spending as much as 60-70% of its time performing a GC. &lt;br /&gt;&lt;br /&gt;Andreas said that there were only a few things that could cause this kind of behavior - in particular having a large tenured object that referenced new objects that were in the youg object space. We did a number of additional profiles of the GC to get a better handle on what was going on and then we started turning off parts of the system to see where it was happening. This helped somewhat, but we did not return to our previous, unconnected performance. Finally, I had narrowed down the location of the problem sufficiently that I decided to just look through the code to see if anything might pop up that could be the culprit. Sure enough, there was an object called "selectorHistogram" that was used to keep track of the number of messages recieved from the remote user that would be sent to particular TObject targets. Croquet was running, but I had commented out this code. I removed the comments and allowed it to execute through and what I found was that instead of keeping track of the number of TObject/message pairs, which typically would not grow very fast, it was adding a new item for every single message sent. This meant that this array was growing in an unbounded way and was exactly the kind of object that would cause the problems with the garbage collector that we were seeing.&lt;br /&gt;&lt;br /&gt;The reason this started happening with Jasmine, and why we never saw it with Solar, was that Solar would convert a TeaName into a TObject as soon as a message was received. Due to problems in ordering (and other things) we determined that it would  be best to convert only when we were about to execute the TeaMessage. What this meant is that instead of adding a TObject and a corresponding message to the histogram, where there was only one TeaObject, we were adding TeaNames, which were constantly being generated for each message send. This meant that the histogram was constantly adding new objects with none of them matching any of the previous ones. Hence, unbounded growth of the IdentityDictionary. We were able to just look at this array as the system was running and watch it grow.&lt;br /&gt;&lt;br /&gt;We decided to remove it completely from the system (we had never really used it much anyway) and we began looking for other similar large objects that could cause problems. It turned out that we had another similar histogram used for the message/object pairs that were SENT. This meant that this array was growing on both ends - the message send and recieve. Once we removed this one as well, we found the connected performance of Croquet to be quite similar to the unconnected speed of the system. &lt;br /&gt;&lt;br /&gt;This was not an exercise in tuning - I really needed a working version of Jasmine for demonstration purposes. Now it seems to be working pretty well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110583186844349940?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110583186844349940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110583186844349940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110583186844349940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110583186844349940'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/01/need-for-speed.html' title='Need for speed'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110507132246520415</id><published>2005-01-06T23:05:00.000-05:00</published><updated>2005-01-06T23:15:22.466-05:00</updated><title type='text'>Picking Portals</title><content type='html'>What I decided to do was just stop the ray at the portal itself instead of having it bounce through. There were a number of reasons I decided to do it this way instead of having it bounce around through the portals. &lt;br /&gt;&lt;br /&gt;First, it just looks better. The bouncing rays, especially in the mirror, were distracting. They were certainly cool looking, but I could tell pretty quickly that this would get old soon.&lt;br /&gt;&lt;br /&gt;Second, it was just fine from the user's point of view. The way the laser works locally, the point of the laser pointer is at the location that the camera pointer intersects the portal, but this is also where the point of the target object lives. So it looks like - from the perspective of the owner of the pointer - he is picking the actual object.&lt;br /&gt;&lt;br /&gt;Third, I realized that I would have to perform the equivalent of an inverse kinematic computation when the mouse was down. The reason for this was I knew where the pointer stars in space 1, and I know where it ends in space n, and doing the forward computation is actually how I determine the location of the initial end point. The problem is, I stop doing this forward test when the pointer button is down, given that I already have the selected object and it is up to IT to determine what location on the object is hot. Thus, we need to compute it backwards. Why is this hard? You need to keep track of all the portals you jumped through going forward, then you have to compute a line back through these portals using the inverse transforms of each - but you need to ensure that the result is a straight line in this multi-portal transition space. This is an exercise left for the reader. And remember, I won't use it anyway, because I didn't think it was very pretty.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110507132246520415?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110507132246520415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110507132246520415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110507132246520415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110507132246520415'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/01/picking-portals.html' title='Picking Portals'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110507009490140026</id><published>2005-01-06T22:54:00.000-05:00</published><updated>2005-01-06T22:54:54.900-05:00</updated><title type='text'>recurse</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/3046020/" title="photo sharing"&gt;&lt;img src="http://photos1.flickr.com/3046020_9be03596f6_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/3046020/"&gt;recurse&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;I have been working on portals for the past many weeks in preparation of working on the task and filter portals system and the new Wicket CAD tool in particular. Here is an example of a portal literally seeing into itself recursively, which was one of the fixes I made. This was not a critical piece of code to get working, but it does demonstrate that the math is accurate, which is crucial if we want to build something more complex on top of this system.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110507009490140026?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110507009490140026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110507009490140026' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110507009490140026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110507009490140026'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/01/recurse.html' title='recurse'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110476669335081820</id><published>2005-01-03T10:28:00.000-05:00</published><updated>2005-01-03T10:38:13.350-05:00</updated><title type='text'>Bouncing Lasers</title><content type='html'>Well, I did it. I got the laser to bounce through the portals properly, even the mirrors. Problem is, I don't like it at all. The reason is that it simply confusing to look at. If you have a laser beam hit a mirror, you will have four seperate laser segments - the two in the space you are in consisting of the laser from the avatar and the bounce in the mirror, and then the reflection of this. It just looks too busy to me. Perhaps I can tone it down a bit. Of course, if you have a mirror in a mirror, which was my test case, it get's really bad. But it does work - except for one thing. I only really need this when the pointer button is down and an object is selected and being manipulated. But this is precisely when I am not testing the pointer hit, presuming that I already have the object in hand that I am targeting. Further, the laser point will change, but only based on the actions of the user and the response of the target. That is, instead of the user determining the interaction, the target object does. This means that I really need to do an inverse of the steps I take to find the object in the first place. This is often impossible. For example, when the target point is moved outside of the scope of the portal. Besides, the math is at least as complex, and I don't have the energy to attack it. Given my unhappiness with how it looks, I am not even certain it is worth the effort.&lt;br /&gt;&lt;br /&gt;Well, at least I got the math right. Now I can focus on aesthetics.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110476669335081820?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110476669335081820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110476669335081820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110476669335081820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110476669335081820'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2005/01/bouncing-lasers.html' title='Bouncing Lasers'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110453355937527208</id><published>2004-12-31T17:42:00.000-05:00</published><updated>2004-12-31T17:52:39.376-05:00</updated><title type='text'>Tricky portal/pointer code</title><content type='html'>I am working on having the user's laser pointer do the right thing when you pick through a portal. What should happen is the laser beam should break into pieces when it transitions through a portal. For example, now when you select an object in the mirror, the pointer simply points directly to the object from the avatar instead of bouncing against the mirror first. If you attempt to manipulate an object that is in a different space on the other side of a portal, the laser points to the position in the current space of where the object is in the remote. This looks bad and can be confusing.&lt;br /&gt;&lt;br /&gt;The main reason I am doing this is in support of the CAD system, as picking through a portal is a central part of that UI, and it really needs to work in an appropriate way. Unfortunately, this is kind of complex. What has to happen is I have to add a laser segment into every space that the pointer traverses a portal to. And of course, this must be replicated - and it needs to be removed after every local render. My concern is that this may be a very expensive process and not worth the resulting payoff. I know there might be some speed enhancements by keeping the remote laser segments around longer, but I really don't want to worry about that yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110453355937527208?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110453355937527208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110453355937527208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110453355937527208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110453355937527208'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/12/tricky-portalpointer-code.html' title='Tricky portal/pointer code'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110444700477201967</id><published>2004-12-30T17:44:00.000-05:00</published><updated>2004-12-30T17:50:39.300-05:00</updated><title type='text'>Artie Shaw</title><content type='html'>Somewhat off topic, but Artie Shaw - the great bandleader and clarinetist, died today. He was 94. If you haven't heard him and his orchestra play, run out and get his &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/B00005PJBJ/qid=1104446835/sr=1-1/ref=sr_1_1/102-4027346-8457766?v=glance&amp;s=music"&gt;Self Portrait Anthology&lt;/a&gt;. I was simply astonished when I heard it the first time - particularly disk two. This guy rocked before there was rock.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110444700477201967?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110444700477201967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110444700477201967' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110444700477201967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110444700477201967'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/12/artie-shaw.html' title='Artie Shaw'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110442864641510955</id><published>2004-12-30T13:35:00.000-05:00</published><updated>2004-12-30T12:44:06.416-05:00</updated><title type='text'>Ghost objects</title><content type='html'>Wicket requires that a normal TSpace be rendered with additional interleaved objects that are not actually in the scene. These are what I call "ghost" objects. They are not in the TSpace hierarchy, but they can be rendered and used as if they were. They are actually owned by the TPortal in the case of the filters, which allows the programmer to render a scene with additional content when scene through the portal. What this means for Wicket is that the CAD tools, such as the 2D draw surfaces and edit boxes would only be displayed through the portal.&lt;br /&gt;&lt;br /&gt;A related issue is removing objects in a scene. This tends to be a bit more complex, as it would require every frame to be checked to see if it matches a particular characteristic. This might be better done as some kind of global flag that the objects themselves can test against. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110442864641510955?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110442864641510955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110442864641510955' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110442864641510955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110442864641510955'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/12/ghost-objects.html' title='Ghost objects'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110428563715431311</id><published>2004-12-28T20:46:00.000-05:00</published><updated>2004-12-28T21:04:00.286-05:00</updated><title type='text'>Virii</title><content type='html'>OK - didn't get much done today after all (day is not done yet though). I spent today working to fix my son's machine - 15 viruses, 95 different malwares, adware, etc. Our internet access was grinding to a halt, so I put a log onto the router and found out that his machine had been zombied - it was looking for open IP addresses to cause even more trouble. I ran &lt;a href="http://www.lavasoftusa.com/"&gt;Ad-Aware&lt;/a&gt; first, and didn't find any more than the usual suspects. Then I ran &lt;a href="http://www.safer-networking.org/en/download/"&gt;Spybot Search &amp; Destroy&lt;/a&gt;, which found a few things - maybe about 3 or 4, but nothing that I hadn't seen before. Then I installed &lt;a href="http://www.pctools.com/spyware-doctor/"&gt;Spyware Doctor&lt;/a&gt; and this discovered about 95 different malware variants. I thought that this had killed the zombie problem, so I went back to work. A little later I noticed that the zombie was still quite alive, so finally I ran &lt;a href="http://www.symantec.com/index.htm"&gt;Norton Antivirus&lt;/a&gt;. This discovered a host of problems, some of which I am still dealing with. I am pretty sure that one of these is the problem, but if it isn't the only thing left is to wipe the disk and start over. &lt;br /&gt;&lt;br /&gt;The moral is... don't let teenagers have access to the net. &lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110428563715431311?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110428563715431311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110428563715431311' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110428563715431311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110428563715431311'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/12/virii.html' title='Virii'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110425273142105058</id><published>2004-12-28T11:41:00.000-05:00</published><updated>2004-12-28T11:52:11.420-05:00</updated><title type='text'>Wicket Day 1</title><content type='html'>I need to make the user's laser pointer bounce properly in the mirrors and through portals. There are two reasons for this - the first is that it looks crappy to other users when you select an object through a mirror and the laser points in some random direction. The reason this happens is the selection is occurring in the frame of the space on the other side of the portal, but is being drawn in the local space. This can only be fixed by breaking the laser into pieces, one for each portal it traverses. The problem with this is it means I need to track all of these laser segments as they render in the remote spaces. I do something similar now with the Avatar down ray. I add a "foot frame" to whatever the down ray finds. This is how I have the avatar move with whatever it is on top of. I just add the delta translation of the foot frame to the avatar's position.&lt;br /&gt;&lt;br /&gt;The second reason I need to track the bounce is that a portal will be able to add a task to the pointer when it picks through. If I have multiple portals, I will add multiple tasks - though I have no idea what this means in practice. &lt;br /&gt;&lt;br /&gt;I have been thinking about this problem for way to long, and it is time to "Just Do It" tm. I took my Ritalin, killed the Spider Solitaire, the kids have left the building, and now I am ready to roll...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110425273142105058?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110425273142105058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110425273142105058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110425273142105058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110425273142105058'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/12/wicket-day-1.html' title='Wicket Day 1'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110364326322424791</id><published>2004-12-21T10:31:00.000-05:00</published><updated>2004-12-21T10:34:41.630-05:00</updated><title type='text'>3Dsolve and Croquet</title><content type='html'>3DSolve is developing an application on top of Croquet. See more about it &lt;a href="http://www.forbes.com/businesswire/feeds/businesswire/2004/12/06/businesswire20041206005357r1.html"&gt;here &lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110364326322424791?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110364326322424791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110364326322424791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110364326322424791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110364326322424791'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/12/3dsolve-and-croquet.html' title='3Dsolve and Croquet'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110333561403404725</id><published>2004-12-17T21:04:00.000-05:00</published><updated>2004-12-17T21:06:54.033-05:00</updated><title type='text'>Back from DC</title><content type='html'>There was a lot of interest in Croquet in DC. Had a lot of great conversations and had WAY too much to drink with Rick McGeer. But neither of us had to drive home and the scotch was pretty good.&lt;br /&gt;&lt;br /&gt;Now to get the road map done and then code code code...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110333561403404725?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110333561403404725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110333561403404725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110333561403404725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110333561403404725'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/12/back-from-dc.html' title='Back from DC'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110298761745117760</id><published>2004-12-13T20:20:00.000-05:00</published><updated>2004-12-13T20:26:57.453-05:00</updated><title type='text'>What Next?</title><content type='html'>I have one more bug to fix, then I am on to the Croquet Road Map. I have plenty of notes and things, so it should be pretty easy to put together once I start. Unfortunately, I don't start until Friday, as I will be in Washington DC thru Thursday evening. Once THAT is done, then I get to work on Wicket.&lt;br /&gt;&lt;br /&gt;The big missing piece is the documentation. I REALLY need to do this, but it may have to wait till January. I may have some major revisions of how the system works anyway, so it is just as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110298761745117760?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110298761745117760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110298761745117760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110298761745117760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110298761745117760'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/12/what-next.html' title='What Next?'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110286860066018088</id><published>2004-12-12T11:16:00.000-05:00</published><updated>2004-12-12T11:23:20.660-05:00</updated><title type='text'>Performance issue ... solved</title><content type='html'>I finally figured out what was going on with Orion's performance issue, and why it was hard for me to find it. Turns out that Andreas modified the #stepTime method to return 20, instead of 0 as it was originally. Later this was modified to return 1 if the highPerformance setting was enabled, which it usually isn't. When I set this flag in the preferences, I had essentially the same frame rate with the current Jasmine change set as with Orion's older pre-change version. &lt;br /&gt;&lt;br /&gt;I speculate that the reason he had an increase in frame rate when he put another morph on top of the TeapotMorph was that the other morph was updating at fullspeed, which would of course force the underneath morph to update at the same rate.&lt;br /&gt;&lt;br /&gt;This was hard to figure out, because I was always testing with larger worlds on machines that were slower than what Orion has. That is, I couldn't usually even get close to 40 Hz update rates with what I was usually doing, so the #stepTime didn't really matter much, as I was running less than this speed. The reason there was such an unevenness to the performance that Orion also noticed was that  we use the morph render time to also update and process the future and remote message queue. The longer the delay, the more messages that would qualify for computation.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110286860066018088?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110286860066018088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110286860066018088' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110286860066018088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110286860066018088'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/12/performance-issue-solved.html' title='Performance issue ... solved'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110279162794913118</id><published>2004-12-11T13:53:00.000-05:00</published><updated>2004-12-11T14:00:27.950-05:00</updated><title type='text'>To Do:</title><content type='html'>I am hitting the wall again - lots of stuff to do.&lt;br /&gt;&lt;br /&gt;- Figure out Orion's performance problem. Even with a very simple world, we have some large cost thing going on now that wasn't there a few months ago.&lt;br /&gt;- Fix the bugs in Mad Hatter - the Sierpinski bound sphere is in the wrong place&lt;br /&gt;- Write up the Croquet Road Map. This is essentially a listing of the high priority items that we have.&lt;br /&gt;- Write the new Wicket demo. See more about this below.&lt;br /&gt;&lt;br /&gt;And I need to have it all done by the end of January. Actually, the road map needs to be done by the end of December. As Crichton used to say: "Butt in the seat".&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110279162794913118?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110279162794913118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110279162794913118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110279162794913118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110279162794913118'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/12/to-do.html' title='To Do:'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110200471172731318</id><published>2004-12-02T11:11:00.000-05:00</published><updated>2004-12-02T11:25:11.726-05:00</updated><title type='text'>Fixing and finding bugs</title><content type='html'>I want to finish up the bug fixing for the old Wicket editor. I don't plan to use this for the next version, but I am interested in why it went south so badly. Also, I will look into the texture problem with the duplicated textures. Finally, I need to figure out why the bound sphere for the sierpinski in MadHatter is in the wrong place. I think that for some reason it is not getting updated, so it is still at 0,0,0.&lt;br /&gt;&lt;br /&gt;I completed the paper for the C5 conference. I think the ideas are pretty good, though I would have liked to discuss the conceptual details a bit more (and a bit better). It turns out that the MVC model is very similar to what we came up with to solve modeless interactions in collaborative 3D. Here is an interesting overview of MVC by the creator of the idea:&lt;br /&gt;&lt;br /&gt; &lt;a href="http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html"&gt;MVC History&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another important early paper was written by Adele Goldberg and Dave Robson entitled:&lt;br /&gt;&lt;br /&gt;"A Metaphor for User Interface Design."&lt;br /&gt;&lt;br /&gt;Unfortunately, we simply could not find a web reference to this paper which was published as part of the U of Hawaii Symposium on System Science. Ted Kaehler was kind enough to provide me with a digitized copy. Alan was also surprised that this was so hard to come by, and suggested that we should have an online repository for some of the important papers in the field (at least the ones that we think are important).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110200471172731318?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110200471172731318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110200471172731318' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110200471172731318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110200471172731318'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/12/fixing-and-finding-bugs.html' title='Fixing and finding bugs'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110151829462328170</id><published>2004-11-26T20:05:00.000-05:00</published><updated>2004-11-26T20:18:14.623-05:00</updated><title type='text'>Filters and Tasks in Croquet</title><content type='html'>I have started writing my C5 paper and I have found some very interesting related papers. Probably the most interesting is a Xerox PARC paper from '93: Toolglass and Magic Lenses: The See-Through Interface&lt;br /&gt;written by Eric A. Bier, Maureen C. Stone, Ken Pier, William Buxton, Tony D. DeRose. From the abstract:&lt;br /&gt;&lt;br /&gt;"Toolglass(TM) widgets are new user interface tools that can appear, as though on a transparent sheet of glass, between an application and a traditional cursor. They can be positioned with one hand while the other positions the cursor. The widgets provide a rich and concise vocabulary for operating on application objects. These widgets may incorporate visual filters, called Magic Lens(TM) filters, that modify the presentation of application objects to reveal hidden information, to enhance data of interest, or to suppress distracting information. Together, these tools form a see-through interface that offers many advantages over traditional controls. They provide a new style of interaction that better exploits the user's everyday skills. They can reduce steps, cursor motion, and errors. Many widgets can be provided in a user interface, by designers and by users, without requiring dedicated screen space. In addition, lenses provide rich context-dependent feedback and the ability to view details and context simultaneously. Our widgets and lenses can be combined to form operation and viewing macros, and can be used over multiple applications."&lt;br /&gt;&lt;br /&gt;These ideas were applied to 3D spaces in this paper: 3D Magic Lenses by John Viega, Matthew J. Conway, George Williams, and Randy Pausch. This does a nice job explaining the visualization capabilities of a both a 2D magic lens in a 3D space and a 3D box lens - that is, the contents of a box are rendered differently than the elements outside the box. The also cover the WIM - world in miniature concept that we implemented in Croquet. &lt;br /&gt;&lt;br /&gt;The major additions we have are in the model of interaction - that is using these objects as toolglasses as described above, and in managing them as part of a collaborative system. Further, I think that this UI model is exactly the right way to create complex applications in Croquet.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110151829462328170?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110151829462328170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110151829462328170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110151829462328170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110151829462328170'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/11/filters-and-tasks-in-croquet.html' title='Filters and Tasks in Croquet'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110073267006994659</id><published>2004-11-17T17:57:00.000-05:00</published><updated>2004-11-17T18:04:30.070-05:00</updated><title type='text'>Wicket in Python</title><content type='html'>I have decided to write the Wicket editor in Python. There are a number of good reasons for this:&lt;br /&gt;&lt;br /&gt;- We need to have a number of alternative languages available in Croquet. It would be a shame for people to get turned off of it just because they don't want to learn Smalltalk.&lt;br /&gt;- This is a forcing function for us to get the Python compiler done so that I can begin work. Andreas thinks he can have it by Monday.&lt;br /&gt;- I don't know Python. For some reason, I don't seem to have much problem switching languages, as they all are pretty much the same to me with slight differences in syntax. APL is a bit different, but since it was my first real language it seems quite natural to me. In fact, I really miss it's array/matrix handling.&lt;br /&gt;- It would be nice to have a substantial application running in Croquet in another language as part of the demonstration of the systems capabilities.&lt;br /&gt;&lt;br /&gt;The Wicket architecture is going to be really neat. It is the first application that will utilize the Replicant/Interactor/Task model and the new UI that we have come up with. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110073267006994659?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110073267006994659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110073267006994659' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110073267006994659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110073267006994659'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/11/wicket-in-python.html' title='Wicket in Python'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110045363707485835</id><published>2004-11-14T11:33:00.000-05:00</published><updated>2004-11-14T12:33:57.073-05:00</updated><title type='text'>To Do</title><content type='html'>There are still a few major gotchas in Jasmine that need to be sorted out before I jump into the Next Big Thing. This list is far from complete, but at least you can see what I am looking at doing.&lt;br /&gt;&lt;br /&gt;- Removed TObjects do not go away sometimes. The reason is they may be sending themselves future messages, which in turn send future messages. Hence, these loose objects are hanging around simply by keeping themselves in the future message queue. &lt;br /&gt;&lt;br /&gt;- The Wicket CAD system is in bad shape. For some reason, the corner handles are in the wrong place.&lt;br /&gt;&lt;br /&gt;- Sometimes, when we first connect, an error occurs because before the connection, we are sharing the same TAvatar. The complicated thing is that this avatar is removed from the scene graph but doesn't know it yet.&lt;br /&gt;&lt;br /&gt;- There is a very noticable performance hit sometimes after we connect. Andreas just upgraded the MessageTally system so that I can better track where our time is going. &lt;br /&gt;&lt;br /&gt;Hope to have these figured out in the next day or so.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110045363707485835?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110045363707485835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110045363707485835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110045363707485835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110045363707485835'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/11/to-do.html' title='To Do'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-110022884727065144</id><published>2004-11-11T22:03:00.000-05:00</published><updated>2004-11-11T22:07:27.270-05:00</updated><title type='text'>Broken Collaboration</title><content type='html'>We currently have a bug in Croquet where if you are connected to a group of peers and bring up the pop-up button menu, if you click on the top left x to make the pop-up go away, the remote parties get an error because they do not have this object. The pop-up is not a replicated object, hence the meta message that gets sent has no where to go. This is where the TeaTime architecture will be required. In this case, all of the overlay objects will be placed into the users personal TeaParty - hence it will not generate any replicated messages. Until this is in place, we will probably have to ignore messages that are sent to non-existent remote objects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-110022884727065144?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/110022884727065144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=110022884727065144' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110022884727065144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/110022884727065144'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/11/broken-collaboration.html' title='Broken Collaboration'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109992799712053659</id><published>2004-11-08T10:22:00.000-05:00</published><updated>2004-11-08T10:33:17.120-05:00</updated><title type='text'>I am really back</title><content type='html'>Back from Boston where I met with Andreas and David R for a couple of days. We made significant progress in planning for the next major steps in Croquet and in understanding the nature of the dichotomy between TeaTime and the meta architecture - why one approach seems to be better for some things and the other approach seems to be better for other things. This understanding led us to a very useful insight that will have a direct impact on the nature of the architecture moving forward. I will attempt to discuss this further later on.&lt;br /&gt;&lt;br /&gt;I am also back from being really sick. Today I feel -almost- normal, so I hope I can catch up on my work. My wife points out that this never happens. No matter how much I get done, I always feel like I am behind. Oh, well...&lt;br /&gt;&lt;br /&gt;So the major tasks in front of me at the moment are:&lt;br /&gt;&lt;br /&gt;- Enhance Alan's demos for the Kyoto prize. I need to get this done by Wed. Preferrably get it done today.&lt;br /&gt;- Write the C5 paper. This is due on Nov. 15. We just decided on the topic on Friday and I need to actually write some code for this.&lt;br /&gt;- Build Wicket 2. This is part of the C5 paper, but is more important to have for the actual talk in January.&lt;br /&gt;- Debug Croquet. There are a lot of things that need to get done there. &lt;br /&gt;- Minimal Croquet Documentation. This will have to wait a bit, as I have more pressing matters (I know you all hate me for saying that, but there it is...)&lt;br /&gt;&lt;br /&gt;At least I feel better now, so I can get this done. I didn't get anything accomplished except for the Boston discussions last week. &lt;br /&gt;&lt;br /&gt;Onward, onward...&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109992799712053659?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109992799712053659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109992799712053659' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109992799712053659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109992799712053659'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/11/i-am-really-back.html' title='I am really back'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109942630610793674</id><published>2004-11-02T15:07:00.000-05:00</published><updated>2004-11-02T15:11:46.106-05:00</updated><title type='text'>Been sick - gettin better</title><content type='html'>I haven't posted for a while since I have had a terrible respiratory problem. I think I picked it up on the way to Vancouver. I am slowly getting better, but haven't had much energy to do much more than listen to CNN. Today I started coding again, but tomorrow I fly to Boston to work with Andreas and David to plan for integrating TeaTime as well as prioritize a number of other missing pieces of Croquet. Should be back to normal soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109942630610793674?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109942630610793674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109942630610793674' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109942630610793674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109942630610793674'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/11/been-sick-gettin-better.html' title='Been sick - gettin better'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109897485858143121</id><published>2004-10-28T10:47:00.000-04:00</published><updated>2004-10-28T10:47:38.580-04:00</updated><title type='text'>Turing Lecture - Oh Canada </title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/1090548/" title="photo sharing"&gt;&lt;img src="http://www.flickr.com/photos/1090548_158ffb2f12_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/1090548/"&gt;Bridge-7&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;Here it is - the grand finale. All we did here was slowly turn on the flag texture opacity, while at the same time we turned off the wireframe's. While  we were doing this we played the Canadian National Anthem. Why Canada? The talk was in Vancouver, it's a good song, and the Canadian flag size is an exact 2 to 1 ratio making it an ideal flag for building bridges out of. &lt;br /&gt;&lt;br /&gt;The code is described in some detail in earlier posts - nothing was done here except some hacks for scripting and setting the initial conditions. Otherwise, this is pretty much the TTapestry object that I created earlier.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109897485858143121?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109897485858143121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109897485858143121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109897485858143121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109897485858143121'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/turing-lecture-oh-canada.html' title='Turing Lecture - Oh Canada '/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109897453146335191</id><published>2004-10-28T10:42:00.000-04:00</published><updated>2004-10-28T10:42:11.463-04:00</updated><title type='text'>Turing Lecture - Release </title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/1090514/" title="photo sharing"&gt;&lt;img src="http://www.flickr.com/photos/1090514_a06dcf84ae_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/1090514/"&gt;Bridge-5&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;Here we see the bridge breaking away from its moorings. In this case, we had set any mass that we did not want to move to have a mass value of 0. This meant that it's location would not be modified in any way. To release it, all we did was set it to a non-zero value, and magic happens. The other thing we did was set the left top mass initial location to be in a different location. When this happens, AND the mass is 0, the mass will move -slowly, to this location if it is different from whereever it is currently.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109897453146335191?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109897453146335191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109897453146335191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109897453146335191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109897453146335191'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/turing-lecture-release.html' title='Turing Lecture - Release '/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109897427478074678</id><published>2004-10-28T10:37:00.000-04:00</published><updated>2004-10-28T10:37:54.780-04:00</updated><title type='text'>Turing Lecture - Add Wind</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/1090511/" title="photo sharing"&gt;&lt;img src="http://www.flickr.com/photos/1090511_6c9ea3cb8e_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/1090511/"&gt;Bridge-4&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;This adds a wind force to all of the masses in the scene. This wind is generated as a vector centered at the tip of a cone and following the cone. Put your arm out in front of you and draw a circle. This wind vector is your arm. At this point, the bridge starts waving around in space reminding us of the Tacoma narrows bridge.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109897427478074678?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109897427478074678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109897427478074678' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109897427478074678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109897427478074678'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/turing-lecture-add-wind.html' title='Turing Lecture - Add Wind'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109897390226686578</id><published>2004-10-28T10:31:00.000-04:00</published><updated>2004-10-28T10:31:42.266-04:00</updated><title type='text'>Turing Lecture - Change Spring Constant</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/1090512/" title="photo sharing"&gt;&lt;img src="http://www.flickr.com/photos/1090512_f0b70cbd2f_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/1090512/"&gt;Bridge-3&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;This script allows us to modify the springs that make up the edges of the bridge. Remember that the spring doesn't generate any force when the x in -kx is 0. x in this case is the delta from the spring at rest. That is what this computes. Here we changed the k value from -1400 which is a very stiff spring, to -400, which is quite a bit softer. Less force is generated from the same delta x. Note that the bridge is now sagging significantly more now.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109897390226686578?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109897390226686578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109897390226686578' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109897390226686578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109897390226686578'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/turing-lecture-change-spring-constant.html' title='Turing Lecture - Change Spring Constant'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109897360262049851</id><published>2004-10-28T10:26:00.000-04:00</published><updated>2004-10-28T10:26:42.620-04:00</updated><title type='text'>Turing Lecture - Add Gravity</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/1090517/" title="photo sharing"&gt;&lt;img src="http://www.flickr.com/photos/1090517_da3098a705_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/1090517/"&gt;Bridge-2&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;This is a (simulated) scene from Alan's Turing Lecture. This is a pseudoscripting system that Andreas put together last week to match the look of the etoys system and present the code in a bit more readable form. Otherwise, this pretty much the same code for the flag as seen below. This is real code - we are indeed modifying it as the system runs and not only that, but it is being done collaboratively, so if we had mutliple machines running this they would all recieive the same new code and compile it.&lt;br /&gt;&lt;br /&gt;Here we are comuting the acceleration of the mass from the force and then computing the new velocity and new mass location from this. The last line sets the initial force to a downward gravity of -2.5. The other two values in that vector are there to create noise.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109897360262049851?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109897360262049851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109897360262049851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109897360262049851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109897360262049851'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/turing-lecture-add-gravity.html' title='Turing Lecture - Add Gravity'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109893212978666981</id><published>2004-10-27T22:53:00.000-04:00</published><updated>2004-10-27T22:55:29.786-04:00</updated><title type='text'>Back from OOPSLA</title><content type='html'>Just arrived back home. I will write about the demo that we did for Alan's Turing Award Lecture tomorrow. Alan received a standing ovation for his talk, and I must say it was the  best one I have seen him give. It was concise and quite powerful. The demos he did at the end were a strong demonstration of the truth of his words. I was inspired. Time to take back the night...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109893212978666981?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109893212978666981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109893212978666981' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109893212978666981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109893212978666981'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/back-from-oopsla.html' title='Back from OOPSLA'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109893166685167198</id><published>2004-10-27T22:47:00.000-04:00</published><updated>2004-10-27T22:47:46.850-04:00</updated><title type='text'>Test Flickr to Blog</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/87951975@N00/1090513/" title="photo sharing"&gt;&lt;img src="http://www.flickr.com/photos/1090513_7fc28481bf_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/87951975@N00/1090513/"&gt;Bridge-1&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/87951975@N00/"&gt;Croqueteer&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;I have a number of images I want to include in these discussions, and Flickr seems to be a convenient way to do this. Full disclosure: One of my friends and colleagues - Frank Boosman - is on Ludicorp's board, but that has nothing to do with why I am using it. It is convenient.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109893166685167198?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109893166685167198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109893166685167198' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109893166685167198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109893166685167198'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/test-flickr-to-blog.html' title='Test Flickr to Blog'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109848009027708497</id><published>2004-10-22T17:16:00.000-04:00</published><updated>2004-10-22T17:21:30.276-04:00</updated><title type='text'>Turing Demo</title><content type='html'>I have been working on a new Croquet demo for Alan's Turing Award talk at OOPSLA next week. I just tried it out on my son and his friend, and they were quite impressed, so I think it is going to go over very well. I won't talk about it any more here, because I want it to be a surprise for people, but once it is done, I will post it so everyone can play with it. &lt;br /&gt;&lt;br /&gt;I have two major things left to do before I jump into the documentation again. First, I have to fix the Wicket CAD system - for some reason the handles around the TEditBox are now in the center. Very strange, and I am pretty sure this was fine when I used it to test Jasmine's recursive meta fix.&lt;br /&gt;&lt;br /&gt;The other thing is there are still a few loose ends on some of the objects not working properly for multi-user. Will fix that soon too. &lt;br /&gt;&lt;br /&gt;I got four hours of sleep last night. This is fun, but I am getting old....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109848009027708497?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109848009027708497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109848009027708497' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109848009027708497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109848009027708497'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/turing-demo.html' title='Turing Demo'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109833869765669511</id><published>2004-10-21T01:42:00.000-04:00</published><updated>2004-10-21T02:04:57.656-04:00</updated><title type='text'>I need...more speed...</title><content type='html'>So I fixed a nasty bug in the rendering code that was causing everything in the Mars and Aqueduct worlds to run 1/2 speed. What was happening was the models that make up these scenes were being installed into the TQuadTree object twice when it was being constructed. This means every single element got rendered twice. Hence, not only did it seem like it was running at 1/2 speed - it probably was.&lt;br /&gt;&lt;br /&gt;A TQuadTree is an object that breaks space up into four quadrants - I call them top left, top right, bottom left, and bottom right. Each of the quadrants is actually a TQuadTree itself and is in turn broken up into four quadrants. In theory, this recursion can continue infinitely, but in reality, I stop after a depth of 5. Also, if a quadrant would otherwise be empty, it is set to nil.&lt;br /&gt;&lt;br /&gt;We actually create the TQuadTree object with the act of dropping a collection of frames into it. Each of these frames has it's own boundSphere around it, and we compare this to the size and location of each quadrant. If the object can't be put in one of the sub-quadrants because it is too large, we just leave it at the containing quadrant. Thus, each sub-frame eventually comes to rest at the quadrant that best approximates it's size. &lt;br /&gt;&lt;br /&gt;So why deal with QuadTrees? The idea is that an object is easier to find (for picking or rendering) by traversing this tree of quadrants. Objects are placed into the TQuadTree based upon location and size. For example, if you need to find a point directly underneath you, you already know which quadrant you are in, so you can test just that one. If that fails, you can test it's subquadrants, etc., until you find an object to stand on. This is ignoring the fact that objects tend to overlap quadrant boundaries, and in fact I deal with this as well. The TQuadTree is what is known as a loose quadtree. That is a quadtree that allows overlaps, but requires that you test all of the edge quadtrees as well. This works surprisingly well, as we only need to put an object into the quadrant that contains it's center point. If you don't use a loose quadtree/octree method, you can use a strict method, but this requires you to duplicate the object in all of the quadrants it overlaps.&lt;br /&gt;&lt;br /&gt;The other win that quadtrees like this gives you is improvements in rendering speed. If a quadrant is visible to the camera, then it is quite probable that the contents of that quadrant will be as well. More importantly, if a quadrant is NOT visible, then we have a guarantee that it's contents are not visible. The same overlapping/neighboring quadrant test applies to rendering as well.&lt;br /&gt;&lt;br /&gt;One way to think of the process of constructing an octree is that of a collection of sieves- one on top of the other - with the ones with the larger holes on top, and smaller holes as you go down from there. The objects that make up the scene fall through the larger ones until they no longer can fit in the lower ones. When the sorting is all done, each object is at its proper location in the sieve.&lt;br /&gt;&lt;br /&gt;One other benefit that loose quadtrees give you is it is much easier to move an object around in one of these. Since only one copy of the object exists in the tree - we need only move it from one quadrant to another when it's center point has moved across the boundary between them. Bookkeeping is extremely simple.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109833869765669511?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109833869765669511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109833869765669511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109833869765669511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109833869765669511'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/i-needmore-speed.html' title='I need...more speed...'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109819774021312399</id><published>2004-10-19T10:51:00.000-04:00</published><updated>2004-10-19T10:55:40.213-04:00</updated><title type='text'>Rendering Speed Problem</title><content type='html'>The Jasmine release of Croquet seems to be about half the speed of the Solar version. Andreas said he thought it might be due to the objects like the TFlag constantly running in the background, but I don't think so. In addition, the PC version seems to be running much faster than the Mac, where in the past they were about equivalent. Again, not sure why. I don't think that the rendering pipeline is that much different between Jasmine and Solar. I thought it might be a texture issue, but turning off texturing entirely makes little difference in performance. The good news is clearly once we fix this, everything runs a lot faster.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109819774021312399?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109819774021312399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109819774021312399' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109819774021312399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109819774021312399'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/rendering-speed-problem.html' title='Rendering Speed Problem'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109801914607777038</id><published>2004-10-17T09:12:00.000-04:00</published><updated>2004-10-17T09:19:06.076-04:00</updated><title type='text'>Blogger = Poor formatting</title><content type='html'>Blogger does a particularly poor job of formatting just about everything. It is certainly easy to use, but the quality of posts, especially things like code, and the way it handles emailed blogs is unacceptable. If anyone knows a better system, please let me know.&lt;br /&gt;&lt;br /&gt;As an example, spaces are as important in a sentence as the words. &lt;br /&gt;&lt;br /&gt;Obviouslythisishardtoreadandyouwouldneverdothis.&lt;br /&gt;&lt;br /&gt;Unfortunately, I can't show you an example where multiple spaces add to the meaning of a sentence, because BLOGGER STRIPS THEM OUT. What is worse, they had to write code to do this, as the text would have printed just fine otherwise. In fact, it looks fine in the editor. This is stoopid.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109801914607777038?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109801914607777038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109801914607777038' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109801914607777038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109801914607777038'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/blogger-poor-formatting.html' title='Blogger = Poor formatting'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109801843616993058</id><published>2004-10-17T08:41:00.000-04:00</published><updated>2004-10-17T09:11:28.506-04:00</updated><title type='text'>How to render the Flag</title><content type='html'>Croquet uses OpenGL so rendering the TTTapestry is just a series of OpenGL calls. You can find this code in the recent Croquet updates as well.&lt;br /&gt;&lt;br /&gt;The basic idea is the masses are objects that include their position in space, the normal that is computed from their neighbors, the texture u,v location which are all used in rendering, and the summation of the forces from the springs, gravity, and wind. The mass position is an obviously useful thing to have around. This is used both to render it here and to determine how much the TSpring is stretched to determine it's restoring force. &lt;br /&gt;&lt;br /&gt;The normal is used by both the wind vector to determine how much of the face of the flag is facing the wind. That is, a piece of cloth that is perpendicular to the wind feels a strong force, where one that is parallel doesn't feel much at all.  It is also used in lighting the flag, as the amount of light at this location is determined in much the same as the amount of force from the wind is.&lt;br /&gt;&lt;br /&gt;The texture u,v coordinates are usually a number between 0.0 and 1.0 and determine what part of the flag's texture corresponds to this mass location. The texture is then stretched between the other mass locations and this one.&lt;br /&gt;&lt;br /&gt;This method uses a triangle strip method. It is actually kind of a zig-zag like this:&lt;br /&gt;&lt;br /&gt;1--------2&lt;br /&gt;--------&lt;br /&gt;------&lt;br /&gt;---&lt;br /&gt;3--------4&lt;br /&gt;--------&lt;br /&gt;------&lt;br /&gt;---&lt;br /&gt;5--------6&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We have to make a number of top to bottom strips like this to complete the flag, so it looks a bit more like this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1--------2--------n&lt;br /&gt;--------  --------&lt;br /&gt;------     ------&lt;br /&gt;---          ---&lt;br /&gt;3--------4--------n+1&lt;br /&gt;--------  --------&lt;br /&gt;------     ------&lt;br /&gt;---          ---&lt;br /&gt;5--------6--------n+2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;TTapestry&gt;&gt;#render: ogl&lt;br /&gt;"We always pass in the OpenGL object when we render"&lt;br /&gt;	| index m |&lt;br /&gt;&lt;br /&gt;	ogl glDisable: GLCullFace. "we want to render both sides"&lt;br /&gt;	texture ifNotNil: [ texture enable: ogl.]."activate the texture"&lt;br /&gt;	1 to: xsize-1 do:[:i | "this is left to right"&lt;br /&gt;	wire ifFalse:[ ogl glBegin: GLTriangleStrip.] " if this is wire frame"&lt;br /&gt;		ifTrue:[ ogl glBegin: GLLineStrip.]. "or if it isn't"&lt;br /&gt;		1 to: ysize do:[:j | "draw the strips vertically"&lt;br /&gt;			index _ (i-1*ysize)+j. "location of the mass in the big array"&lt;br /&gt;			m _ masses at: index. &lt;br /&gt;			ogl glNormal3fv: m normal. "computed from nearby masses"&lt;br /&gt;			ogl glTexCoord2f: m uv x with: m uv y. "texture coordinates"&lt;br /&gt;			ogl glVertex3fv: m location. "continue line at 3D location of mass"&lt;br /&gt;			index _ index +ysize. "index of the mass to our right"&lt;br /&gt;			m _ masses at: index.&lt;br /&gt;			ogl glNormal3fv: m normal.&lt;br /&gt;			ogl glTexCoord2f: m uv x with: m uv y.&lt;br /&gt;			ogl glVertex3fv: m location. &lt;br /&gt;&lt;br /&gt;		].&lt;br /&gt;		ogl glEnd. "stop rendering the triangle strip"&lt;br /&gt;	].&lt;br /&gt;&lt;br /&gt;"If we are rendering in wire frame, clean up the edges, otherwise we have&lt;br /&gt;a zig-zag like shape."&lt;br /&gt;	wire ifTrue:[&lt;br /&gt;		1 to: xsize do:[:j |&lt;br /&gt;			ogl glBegin: GLLineStrip.&lt;br /&gt;			1 to: ysize do:[:i |&lt;br /&gt;				ogl glVertex3fv: (masses at:(j-1*ysize)+i) location.].&lt;br /&gt;			ogl glEnd.&lt;br /&gt;		].&lt;br /&gt;	].&lt;br /&gt;	texture ifNotNil:[texture disable: ogl.].&lt;br /&gt;"&lt;br /&gt;This was test code to render the springs to see if these make any sense...&lt;br /&gt;they do now.&lt;br /&gt;&lt;br /&gt;	springs do:[:s |&lt;br /&gt;		ogl glBegin: GLLineStrip.&lt;br /&gt;		ogl glVertex3fv: s mass1 location+(0@2@0.3).&lt;br /&gt;		ogl glVertex3fv: s mass2 location+(0@2@0.3).&lt;br /&gt;		ogl glEnd.&lt;br /&gt;		].&lt;br /&gt;"&lt;br /&gt;" &lt;br /&gt;This was test code to display all of the normals on the flag. &lt;br /&gt;&lt;br /&gt;	masses do:[:ms |&lt;br /&gt;		ogl glBegin: GLLineStrip.&lt;br /&gt;		ogl glVertex3fv: ms location.&lt;br /&gt;		ogl glVertex3fv: ms location - ms normal.&lt;br /&gt;		ogl glEnd.&lt;br /&gt;		].&lt;br /&gt;&lt;br /&gt;"&lt;br /&gt;"return OpenGL back to it's standard approach of culling back faces"&lt;br /&gt;	ogl setCull.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109801843616993058?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109801843616993058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109801843616993058' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109801843616993058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109801843616993058'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/how-to-render-flag.html' title='How to render the Flag'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109793099210551504</id><published>2004-10-16T08:49:00.000-04:00</published><updated>2004-10-16T08:51:13.486-04:00</updated><title type='text'>Flag Time to Run</title><content type='html'>Here is something interesting. I compared the two compute engines of the old TFlag and the  new TTapestry and found the following:&lt;br /&gt;&lt;br /&gt;tf := TFlag new.&lt;br /&gt;tt :=TTapestry new.&lt;br /&gt;&lt;br /&gt;  ( the results are in milliseconds)&lt;br /&gt;[1000 timesRepeat:[ tf step ]]timeToRun 8608&lt;br /&gt;[1000 timesRepeat: [tt testCompute]]timeToRun 9528&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[10000 timesRepeat:[ tf step ]]timeToRun 80553&lt;br /&gt;[10000 timesRepeat:[ tt testCompute]]timeToRun 92868&lt;br /&gt;&lt;br /&gt;I presume that what this means is the much simpler code of TTapestry, which yields nearly identical qualitative results does not take that much longer than the array juggling that TFlag has to do.&lt;br /&gt;&lt;br /&gt;A fifteen percent increase in compute time is a small cost to pay for the code being so much more readable. Also, though I can't imagine where I could speed up the TFlag computation, as it is so complex, I am sure I could easily find a few additional cycles in the TTapestry. But then, perhaps I am missing something?&lt;br /&gt;&lt;br /&gt;The new classes are posted as Croquet updates. See TTapestry for how to use.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109793099210551504?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109793099210551504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109793099210551504' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109793099210551504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109793099210551504'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/flag-time-to-run.html' title='Flag Time to Run'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109777668138845507</id><published>2004-10-14T13:01:00.000-04:00</published><updated>2004-10-15T04:44:39.346-04:00</updated><title type='text'>At Jawjaw Tek</title><content type='html'>Alan gave his dry-run talk for his Turing Award talk later this month (which was excellent by the way). I was supposed to demo the mass/spring model I did with him at the end, but did not realize he was waiting for me to let him know I was ready - and I was waiting for him to let me know when to come up to do it. Oh well. I expect the demo will be in great shape for the next talk. Besides, I think his talk was actually quite well done without my demo at the end. I think it might have broken his stride.&lt;br /&gt;&lt;br /&gt;The demo is actually quite simple. There are three objects. What I call a TTapestry, which is the UI and rendering of the system, a TMass, which holds a position, summed forces, and a mass (usually 1.0), and TSpring, which connects two masses.&lt;br /&gt;&lt;br /&gt;When initialized, TTapestry creates a grid of TMasses, roughly in a square, and generates a collection of TSprings, each of which is iniitalized with two masses that can have influence on each other. All three of these have a #compute method. The TTapestry compute sends the other two compute messages to the collection of masses and then springs.&lt;br /&gt;&lt;br /&gt;TTapestry&gt;&gt; #compute&lt;br /&gt;&lt;br /&gt;	self addWind.&lt;br /&gt;	&lt;br /&gt;	springs do:[ :s | s compute. ].&lt;br /&gt;	masses do:[ :m | m compute. ].&lt;br /&gt;&lt;br /&gt;	self future: 20 perform: #compute.&lt;br /&gt;&lt;br /&gt;the #addWind message just adds another force to the masses from a virtual wind. &lt;br /&gt;&lt;br /&gt;The TSpring&gt;&gt;#compute uses the standard -kx force computation as below:&lt;br /&gt;&lt;br /&gt;TSpring&gt;&gt; #compute&lt;br /&gt;	&lt;br /&gt;	| v n k |&lt;br /&gt;&lt;br /&gt;	k:= -200.0.&lt;br /&gt;	v _ (mass1 location - mass2 location).&lt;br /&gt;	n _ v normalized * rest.&lt;br /&gt;	v _ (v-n) * k.&lt;br /&gt;	mass1 addForce: v.&lt;br /&gt;	mass2 addForce: v negated.&lt;br /&gt;&lt;br /&gt;All that this is doing is determining the vector distance between the two masses, subtracting the rest distance (where the x in -kx is zero) and then multiplying the rest by k. We then add this force and its equal and opposite reaction force to the appropriate masses.&lt;br /&gt;&lt;br /&gt;Finally, we compute the effect of the forces on each mass:&lt;br /&gt;&lt;br /&gt;TMass&gt;&gt;#compute&lt;br /&gt;&lt;br /&gt;	| g accel t |&lt;br /&gt;	mass ~= 0.0 ifTrue:[&lt;br /&gt;		t := 0.05.&lt;br /&gt;		g := 0.0@-2.0@0.0. &lt;br /&gt;		force := force + g." add the gravity"&lt;br /&gt;		accel := force. " mass = 1.0"&lt;br /&gt;		velocity := velocity + (accel * t). "acceleration increases velocity"&lt;br /&gt;		velocity := velocity - (velocity * 0.1)."damp velocity"&lt;br /&gt;		location := location + (velocity * t). "change location"&lt;br /&gt;		force := 0@0@0. "clear force"&lt;br /&gt;	].&lt;br /&gt;	&lt;br /&gt;if the mass is 0.0 we don't do anything, as this means the mass is a fixed location - like the corner of the flag.&lt;br /&gt;&lt;br /&gt;We could use the actual elapsed time here, but I am just using an artificial one, which I am setting to 0.05 of a second. I am presuming that the mass is equal to 1.0 so I don't have to divide to compute acceleration (f = ma, hence a = f/m).&lt;br /&gt;&lt;br /&gt;Acceleration causes a change in the velocity, and velocity causes a change in position, so now we have moved the location of the mass.&lt;br /&gt;&lt;br /&gt;This last line is very important. Now that we have resolved the forces from this time segment into an action, we need to clear the force vector. If we don't, this force value will continue to grow, which causes the system to become unstable.&lt;br /&gt;&lt;br /&gt;That is all there is for the masses and springs. Really. The TTapestry adds a wind, but this just results in another force being added to the masses. What I find so interesting is that these two extremely simple objects generate such interesting behavior.&lt;br /&gt;&lt;br /&gt;The only other interesting thing is the TTapestry&gt;&gt;#render:, but for some reason I screwed this up, so need to thing about it a bit before I post it here...&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109777668138845507?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109777668138845507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109777668138845507' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109777668138845507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109777668138845507'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/at-jawjaw-tek.html' title='At Jawjaw Tek'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109769421880449112</id><published>2004-10-13T14:59:00.000-04:00</published><updated>2004-10-13T15:03:38.803-04:00</updated><title type='text'>Off to Georgia</title><content type='html'>Alan is giving a talk at Georgia Tech tomorrow and asked me to come along for the ride. Things look pretty good - I think we will have a much more robust version of Croquet by tomorrow than Solar ever was. By the way, Solar was our old war horse demo platform. All of the neat little demo apps we have in Croquet were built to show off in the Solar version. I called it Solar because it has a neat model of the Solar system in it. I tended to keep track of the versions based upon whatever new thing I had built in it. There is no Jasmine app - yet.&lt;br /&gt;&lt;br /&gt;Alan wants a demo that is kind of a cross between the flag and the CAD system. For tomorrow's talk...&lt;br /&gt;&lt;br /&gt;I have been thinking about this for a bit. I have some interesting ideas which I will probably write about later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109769421880449112?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109769421880449112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109769421880449112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109769421880449112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109769421880449112'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/off-to-georgia.html' title='Off to Georgia'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109760531119629783</id><published>2004-10-12T14:06:00.000-04:00</published><updated>2004-10-12T14:21:51.196-04:00</updated><title type='text'>Jasmine Debugging</title><content type='html'>I must have killed a dozen bugs today already. Most of them are between the crack bugs - that is, bugs that were created by porting the MadHatter architecture onto the Solar replication model. Nothing fundamentally wrong, just tracking them down and checking with Solar on how the objects computation should be replicated. &lt;br /&gt;&lt;br /&gt;There is one potentially serious problem that I am in the middle of fixing. When an avatar traverses through a portal into another space, currently the remote version of the avatar is not making the transition. The reason was pretty simple - the transition was never sent remotely. The problem is that we send the following message:&lt;br /&gt;&lt;br /&gt;avatar future: 0.0 perform: #goToPortal:transform: withArguments: { toPortal . trans }.&lt;br /&gt;&lt;br /&gt;which is in effect telling the avatar to jump through the portal asap. What we really want is&lt;br /&gt;&lt;br /&gt;avatar meta future: 0.0 perform: #goToPortal:transform: withArguments: { toPortal . trans }.&lt;br /&gt;&lt;br /&gt;Subtly different and guaranteed to lock up the system. Why? When we send a message between machines that reference TObjects like the avatar, we don't send the actual object - we send it's name. The target of the message is encoded as well as the arguments. The problem is that this is not done recursively. That is, the actual message that is being sent here is &lt;br /&gt;&lt;br /&gt;#future:perform:withArguments:&lt;br /&gt;&lt;br /&gt;and its arguments are the message #goToPortal:transform and... an array. We don't do a recursive lookup. That means that we try to send the array and it's contents in toto. Well, in this case, toPortal is a member of the array and is also a TObject that is somewhere inside of a space. It is actually a TPortal, but that doesn't matter. What we are trying to do is package up the TPortal and everything it references and send that. This will fail because we are trying to send the entire contents of the croquet session that probably references all of the Squeak image in some way. Not particularly efficient.&lt;br /&gt;&lt;br /&gt;Squeak actually has something that is designed to address this problem that I used in a previous version of Croquet. Unfortunately, I can't find that code exactly, but it is based upon a SmartRefStream, which in turn is a subclass of RefStream, which is simply a way to convert objects to streams and back again. A SmartRefStream is "smart" because it is very aware of multiply referenced objects and can eliminate redundency - very important if you don't want to turn one local object into multiple remote objects. What I did before was added a bit of code that would dereference the objects to their TeaNames if they had one, otherwise it would just encode the actual object.&lt;br /&gt;&lt;br /&gt;Once this is in place, then remarkably,&lt;br /&gt;&lt;br /&gt;avatar meta future: 0.0 perform: #goToPortal:transform: withArguments: { toPortal . trans }.&lt;br /&gt;&lt;br /&gt;will just work.&lt;br /&gt;&lt;br /&gt;Magic.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109760531119629783?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109760531119629783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109760531119629783' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109760531119629783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109760531119629783'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/jasmine-debugging.html' title='Jasmine Debugging'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109754362343307962</id><published>2004-10-11T21:13:00.000-04:00</published><updated>2004-10-11T21:27:05.946-04:00</updated><title type='text'>Jasmine Ships - ReadMe.txt</title><content type='html'>We just agreed to release Jasmine to the public today. This was a  &lt;br /&gt;pretty intense effort. Andreas and I spent two weeks together to port  &lt;br /&gt;the new architecture that we did for MadHatter to Jasmine, and then we  &lt;br /&gt;seriously upgraded the meta architecture. The last week has been spent  &lt;br /&gt;on documentation (still not ready), debugging, and finishing off as  &lt;br /&gt;many loose ends as we could. Interesting that the very last thing we  &lt;br /&gt;had to do was decide on the name of this release. We all finally agreed  &lt;br /&gt;that this is, in fact, Croquet 0.1. This is to ensure that people  &lt;br /&gt;understand that this is an early incomplete version of the system. The  &lt;br /&gt;"Jasmine" term is the project/release name, so this will change for  &lt;br /&gt;every major release that goes out the door.&lt;br /&gt;&lt;br /&gt;As always after a release, I am a bit drained rather than exhilarated.  &lt;br /&gt;I tend to dwell on the things that are missing and the problems that  &lt;br /&gt;are still in the code. Ignorance is bliss - and I just know too much.  &lt;br /&gt;Anyway, here is the Read Me from this release (or a close  &lt;br /&gt;approximation):&lt;br /&gt;&lt;br /&gt;READ ME - Jasmine  1.0&lt;br /&gt;The Croquet(tm) Developer's Release&lt;br /&gt;-----------------------------------------&lt;br /&gt;The Croquet Committee welcomes you to the Jasmine Developer's Release  &lt;br /&gt;of Croquet.&lt;br /&gt;&lt;br /&gt;The Croquet Home Page is at &lt;a href="http://www.croquetproject.org"&gt;http://www.croquetproject.org&lt;/a&gt;. Everything related to Croquet is accessible from there, including access to the  Croquet system itself.&lt;br /&gt;&lt;br /&gt;The Jasmine Developer's Release is intended for people to get their feet wet playing with Croquet. Though most of the system is functional, some key elements are not quite ready and will begin to appear over the next few weeks. This release is really to get you acquainted with the system, deconstruct the examples, and try your own hand at making some things. It is important to note that Croquet is built on top of the Squeak system &lt;http://squeak.org&gt; and includes a complete development environment. In other words, everything you need to develop in Croquet is included as part of this release.&lt;br /&gt;&lt;br /&gt;Croquet is an true Open Source project and is covered by an MIT type license. With that in mind, we invite you to participate in the ongoing evolution of the system. You can do this in a number of ways.&lt;br /&gt;&lt;br /&gt;First, we have a community mailing list that you should join. You can  &lt;br /&gt;do this at:&lt;br /&gt;&lt;a href="http://www.croquetproject.org/Community/listserver.html"&gt;http://www.croquetproject.org/Community/listserver.html&lt;/a&gt;&lt;br /&gt;This is probably the best place to have your questions answered and for you to help others figure out how to extend Croquet.&lt;br /&gt;&lt;br /&gt;Second, we have set up a bug tracking system at  &lt;br /&gt;&lt;a href="http://bugs.impara.de"&gt;http://bugs.impara.de&lt;/a&gt;&lt;br /&gt;You will need to register to use this, but it  allows you a place to let us know about any problems that you might have.&lt;br /&gt;&lt;br /&gt;Third, you can help by providing us with bug fixes, new features, or just new ideas. Many of the things that we use to demo Croquet came from people who had a neat idea that we just had to implement.&lt;br /&gt;&lt;br /&gt;Fourth, let us know what you think. In the end, we are doing this for you. We are truly interested in what you think of what we have done, where it could go, and where we failed. Even if you hate the system, let us know - you could well know something we don't. In the end, we can't make Croquet great without your help.&lt;br /&gt;&lt;br /&gt;Launching Croquet&lt;br /&gt;-----------------------------------------&lt;br /&gt;Croquet runs on three different platforms - Macintosh, Windows, and Linux. Each of these have slightly different methods for launching the system. Once you are actually running Croquet, all of the systems work identically. All of the Jasmine folders include essentially the same files. The Jasmine1.0.image and Jasmine1.0.changes are where the actual Croquet system is, but we have made it easy for you by supplying a launch icon.&lt;br /&gt;&lt;br /&gt;Macintosh: To start Croquet on the Macintosh, just double click on the  "Jasmine" app in the folder.&lt;br /&gt;&lt;br /&gt;Windows: To start Croquet on Windows, simply double click the "Jasmine" shortcut that you will find in the Jasmine folder.&lt;br /&gt;&lt;br /&gt;Linux: To start Croquet on Linux, simply double click or run the "Jasmine.sh" file.&lt;br /&gt;&lt;br /&gt;Getting Started&lt;br /&gt;-----------------------------------------&lt;br /&gt;When you start Croquet, you will see three small window icons (along with the license). To jump into Croquet, just click on the icon labeled "First Steps". This takes you to another desktop where you can begin to play.&lt;br /&gt;&lt;br /&gt;1) Press the 'update code from server' button OFTEN and REGULARLY.  This will keep your system up-to-date with the latest developments (you can also update the system through the world menu, 'help...' submenu). It is extremely likely that by the time you read this, the system will have a number of updates available that may directly address potential problems that you might otherwise have. Don't wait.&lt;br /&gt;&lt;br /&gt;2) Drag one of the four objects from the catalog to the center of the main window.  The standard Croquet demo can be accessed by dragging the 'Teapot' object (be warned that because of the amount of stuff in the demo - it may take some time for it to completely load - this WILL improve dramatically).&lt;br /&gt;&lt;br /&gt; From this point, you can just experiment. For information on how to maneuver through the Croquet system, please check out the web site user guide at: &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.croquetproject.org/About_Croquet/userguide.html"&gt;http://www.croquetproject.org/About_Croquet/userguide.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note to Programmers&lt;br /&gt;-----------------------------------------&lt;br /&gt;Croquet is a component-based architecture that makes it extremely quick and easy  for you to create useful collaborative objects. The system has been designed from the ground up to make it simple to create truly shared objects of virtually any sort.&lt;br /&gt;&lt;br /&gt;For basic information on how to approach programming in Croquet, please  &lt;br /&gt;refer to:  &lt;br /&gt;&lt;a href="http://croquetproject.org/croquetdevelopment/Croquet_Technologies/programmer.html "&gt;http://croquetproject.org/croquetdevelopment/Croquet_Technologies/programmer.html &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Please note that this site does not attempt to teach  you how to use the Squeak programming environment, or how to program in  OpenGL. There are a number of useful resources available for both of   these, includingÂ  Squeak:  Object-Oriented Design with Multimedia  Applications by  Mark Guzdial, Prentice-Hall, 2000, and the OpenGL  Programming Guide by Mason Woo, Jackie Neider, Tom Davis,  and Dave Shreiner, Third Edition. Addison-Wesley. 1999). You will also be able  &lt;br /&gt;to download the Croquet Manual from: &lt;br /&gt;&lt;a href="http://www.croquetproject.org/Croquet_Technologies/downloads.html "&gt;http://www.croquetproject.org/Croquet_Technologies/downloads.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bug Reports&lt;br /&gt;-----------------------------------------&lt;br /&gt;We have a bug report server running at &lt;a href="http://bugs.impara.de"&gt;http://bugs.impara.de&lt;/a&gt;. Please  let us know of any problems - major or minor.&lt;br /&gt;&lt;br /&gt;FAQ&lt;br /&gt;-----------------------------------------&lt;br /&gt;For more information about Croquet and the Jasmine release, the Croquet  &lt;br /&gt;FAQ is available at:&lt;br /&gt;&lt;a href="http://www.croquetproject.org/About_Croquet/faqs.html"&gt;http://www.croquetproject.org/About_Croquet/faqs.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Croquet License&lt;br /&gt;-----------------------------------------&lt;br /&gt;Copyright (c) 2002-2004 by Viewpoints Research Institute, Inc.  and  other individual, corporate, and institutional contributors  who have collectively contributed elements of the Croquet(tm) software code to the Croquet Project. Croquet is  a trademark of Viewpoints Research Institute, Inc..&lt;br /&gt;&lt;br /&gt;Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:&lt;br /&gt;&lt;br /&gt;The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.&lt;br /&gt;&lt;br /&gt;THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DAS&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109754362343307962?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109754362343307962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109754362343307962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109754362343307962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109754362343307962'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/jasmine-ships-readmetxt.html' title='Jasmine Ships - ReadMe.txt'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8378574.post-109706345580197356</id><published>2004-10-06T07:50:00.000-04:00</published><updated>2004-10-06T09:11:24.673-04:00</updated><title type='text'>Croquet Anyone?</title><content type='html'>Hi all,&lt;br /&gt;&lt;br /&gt;Thanks for your patience. The developer's release of Croquet (codenamed &lt;br /&gt;"Jasmine") is undergoing some final Q&amp;A prior to being made available &lt;br /&gt;for download on Monday, October 11 here:&lt;br /&gt;&lt;br /&gt; &lt;a href="http://www.croquetproject.org/Croquet_Technologies/downloads.html"&gt;Croquet Project DownLoads&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Jasmine will allow you to begin developing components with some level &lt;br /&gt;of comfort that the interfaces will not change significantly between &lt;br /&gt;this and the user release. That said, there are a number if important &lt;br /&gt;pieces still missing, but we are quite comfortable that these will be &lt;br /&gt;available soon and have decided that there is no reason to wait for &lt;br /&gt;them before releasing the system. Please let us know of any problems &lt;br /&gt;you might run into or ideas for improvement that you might have. This &lt;br /&gt;release represents a major turning point in the evolution of Croquet - &lt;br /&gt;from a closed development effort to one that is open and truly takes &lt;br /&gt;advantage of the dynamics and capabilities of the open source &lt;br /&gt;community. Thanks again for your support.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;&lt;br /&gt;David&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8378574-109706345580197356?l=croqueteer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://croqueteer.blogspot.com/feeds/109706345580197356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8378574&amp;postID=109706345580197356' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109706345580197356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8378574/posts/default/109706345580197356'/><link rel='alternate' type='text/html' href='http://croqueteer.blogspot.com/2004/10/croquet-anyone.html' title='Croquet Anyone?'/><author><name>David A. Smith</name><uri>http://www.blogger.com/profile/08378620295464558412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://1.bp.blogspot.com/_dyMgb_X3v80/TGhn2kDIl3I/AAAAAAAAABM/iQi2JOJvvSo/S220/David+Smith+Croquet+Demo.jpg'/></author><thr:total>0</thr:total></entry></feed>
