these are the archives of my daily work log from its inception in may 1998 through to july 1999. they are stored from oldest to newest as you scroll down the page.

  my, a lot of (wasted?) effort went into writing all this stuff. well, it's fun to look back on now, I suppose.

26/05/98: Created this work log.

Wrote a first draft research proposal and gave it to Richard and Geoff.

Alison Finnigan got in touch via Kaye and told me that my scholarship will start in July rather than June so that I can get 6 semesters worth of scholarship instead of 5 semesters and June. This seems like a good deal to me :)

Created my BibTeX bibliography file and added all the papers from the back of my book. Looks good although I am still unsure how to reference Maya and Mirage and 3D Studio Max.

Considered getting 3D Studio Max from Jayson and Peter's Russian friend, decided that I should just go to ARL and have a play with it there sometime, if possible.

Trying to organise brackets 25 and 27 of the Shakedown, against WildWolf's best efforts.

Examined the QWD format and concluded that I need to know what the format of the first connect packet is in order to do anything... should be in the mikeBot code.

Tried to get Tracey to install G3 Ethernet 2.0.4 on the 300 Macs so that Oli and I can play Myth this weekend.

27/05/98: I'm doing some serious thinking about the main design issues and algorithms behind the system that I want to create. I figure that I can merge the algebraic CSG and polygonal mesh representations of objects into one octree datagraph that references object-specific triangle and vertex databases.

Such a data structure might well be able to update polygon-graphs for CSG in realtime. I hope so, as then we can do interactive CSG like I want to!

I'm thinking of playing with POVRay's object description language to see what it's like.

Did some more serious thinking about the octree structures. It looks as though the algorithm might work reasonably fast, hopefully it can be optimised to realtime speeds for medium-complexity objects. Also, looks to be O(n) with respect to primitives in object!

Shakedown stuff continues, all going well. Rewrote the rules for sets 2 and 4 of the Round 2 games, to clarify stuff. Now the Territories games are worth more, and the Archer Wars is nicer.

I'm busy setting up the vote-for-finalists competition, that is going well. Ideally the automatic generator thingy will be done before Friday, when Round 2 starts.

Tested Mathew's CD-R device by plugging it into my primary IDE chain (as slave). De nada, the **** thing crashed after 226 MB written on the test CD. Looks like the CD-R unit will have to be replaced, which is bad.

28/05/98: Richard O'Keefe has some good feedback on the proposal I submitted to him... I'm looking over it and trying to work out how I can integrate his changes into what I already have.

Steven gave me an idea as to how I can speed up the octree real-time polymesh creation.

Shakedown Round 1 is done. I've started the vote-for-finalists competition, after writing a neato auto-processor of email votes.

Played some Quake with Julian on Xtra, got frustrated by lag patches and Aussie LPBs so left.

29/05/98: Got some feedback from Geoff on my research proposal. He doesn't like my 'cliched' style of writing :(

Ideas for the proposed system are solidifying nicely in my head. Should be a possible project!

Incorporated Geoff and Richard's comments into the second draft of my research proposal.

Chased down Geoff about being paid for Mirage tutoring... apparently the departmental secretary is handling it.

Mirage tidyup, got rid of the ****ing RCS stuff that I haven't used in the last 18 months. Also moved the example code into the examples directory where it should be! Created an ASSERT macro.

Placid is winning the vote-for-finalists competition... 75%+ of people have voted for him!

Checked out OGR's E3 coverage, very nice.

02/06/98: Picked up my thesis from the bindery on Leith Street. Took it to Registry and paid the invoice for the binding, hopefully Research and International will reimburse me for this when Alison Finnigan gets back on the 27th.

Wrote the 3 CDs for the 3 copies of my thesis.

Handed the final bound thesis into R&I, but I will have to tidy it up tomorrow still. Not done yet!

Shakedown Round 2 organising continues... pretty quiet though.

I played a lot of Myth over the weekend, great fun!

Strategy film analysis didn't go ahead as planned, rescheduled for Tuesday 9pm PDT (Wednesday 4pm NZST).

03/06/98: Did a lot of serious thinking about my PhD, data structures and CSG graphs.

Finished writing the quake pingbot. It lives!!

04/06/98: Got the name 'Mike Mws' from Geoff. Apparently he works for the US Army and has written a similar program to the one that I want to write. I'll get onto him shortly.

Went to the Science Library and played with the Science Citation Index. It's an amusing tool, but it doesn't index SIGGRAPH, Computer Graphics, Computers & Graphics, The Visual Computer, Computer Graphics Forum or a whole swag of publications that I wanted to look up articles from. Grr. It does have IEEE CG&A, though, which is better than nothing.

Went to ARL to talk to George (who's getting married) about research and sources of publications. He had a few good ideas but they all basically come down to 'Go to the library and stay there until you've read all the graphics journals'.

Got the first results of Shakedown Round 2 back. Woohoo, although it's apparent that the scoring needs a bit of a fix-up.

05/06/98: Tried to hammer out who's getting the new offices in the new building. I've said that I don't want one just yet, I'll continue to work in the lab for now.

The new memory for Othello and Desdemona will be arriving as part of the next equipment grant, whenever that is.

Hunted down Mike Muuss of the US Army Research Laboratory. He's written a program called BRL-CAD that uses n-Manifold Geometry techniques to create and maintain polygonal tesselations of CSG objects for interactive manipulation purposes. It looks nice... I've filled out their license agreement and will fax it to them on Monday.

Shakedown finalist competition has quite a few entrants now ... 70!

Results are in for Bracket 15 of Round 2. No real surprises there.

I'm still trying to organise Bracket 5... aaaargh, scheduling hell.

08/06/98: Got my thesis back from the Registry, where Student Records have been sitting on it for a week. And no, they haven't done anything with it. In fact, I should never have taken it there in the first place. Sigh.

Gave my thesis (2 copies) to Brian, who will post it to the external examiner.

Found a very important paper in SIGGRAPH 97 that basically implements a system very, very similar to the one that I want to create. Hmm.... well, I'll chase up its references and then decide if I still have a PhD.

I've read a large number of papers today... eeek. I'm currently suffering from poor scholarly writing overload.... but it should pass.

This paper by Rappoport and Spitz scares me more the more I read it. Oh well, I still have some interesting ideas that I can work on.

Results are in for several more brackets of Round 2. A few scheduling conflicts still.

I don't know if I want to join Bloodrain (the NZ Quake CTF league) or not. It's a large time investment, and I don't find team CTF that much fun any more. Well, I'll see when we get QW 2.21 installed on these computers.

The Shakedown vote-for-finalists competition is over now. 71 entries... not bad, not bad. On that note, the Shakedown website passed 2000 hits last night, woo.

09/06/98: Revied lots of SIGGRAPH papers, at least briefly. Examined SIGGRAPH 97-92 looking for relevant papers, and there aren't many apart from Rappoport's 97 paper.

In fact, there's nothing really relevant to my work in any of the SIGGRAPH conference proceedings all the way back to 1981. Time to start looking at other journals.

Reviewed The Visual Computer, 1990-1998. A few useful papers, including one excellent one by this same van Emmerik guy... he seems to be a real guru in geometric constraint modelling. I must look into those references later.

Julian's Quake clan AWOL says that they want me to join them. Hmm... it might be fun, but it might be a lot of effort too. I'll see.

Shakedown stuff continues. Bungie guy Jim says that I can have a Myth soundtrack CD to give to the winner of the pick-the-finalists competition. Oh joy.

10/06/98: Been arguing over stack implementations today. Puzza just won't stop harping on about the benefits of freelists... my dynamic array implementation would destroy his in efficiency and he knows it, but won't admit it. Grr, well it's my PhD, dammit!

Reviewed more of The Visual Computer, 1990-1985. Found a useful CSG reference from Geoff Wyvill in 1985, and a few UI papers.

Reviewed Communications of the ACM, for several years back. It seems to be mostly related to IT stuff and I couldn't find any computer graphics articles so I stopped at about 1992.

Found an interesting Myth site called blam! that seems to be dedicated to purging the ranked rooms of bungie.net of the scum and villainy that infests them. Interesting idea, and one that I'd like to try out. I emailed Mordia saying that I want in.

Processed another 2 brackets worth of Shakedown results. Meme is missing films for games 3 and 5, so I guess I'll just post an incomplete filmset.

11/06/98: Aaaargh, slept in this morning. Not good, considering I had quite a bit of work that I wanted to get done before my meeting with Geoff at 2.

Geoff pushed the meeting back until after the examiners' meeting.

Reviewed most of Computer Graphics back until 1991. Some interesting papers.

Had a good meeting with Geoff, very thought-provoking. Must investigate normal-form CSG graphs and disjoint set theory... ick!

Results for Shakedown R2B16 are in. Placid in 3rd place... he's pushing it!

My butcher@corporation.org email address has stopped working... grr. This does not bode well.

12/06/98: Trying to sort out problems that Steven is having with the gcc implementation on these Linux boxes. It seems to be killing his program.

Created a small alias loop that kills people's Netscape processes when they log out - this should be happening anyway, but Netscape is buggy and sometimes it hangs around after logout. Hopefully no more rampant Netscape processes!

More Shakedown stuff, people quibbling over game decisions, etc.

Dave setuid qwcl2.21 on all the other machines, which means that Julian and I can play QW 2.21 with AWOL. Oh joy. They have a practice this evening, I think.

AWOL practice was pretty brutal. We got thoroughly hammered, although the defence stood up reasonably okay on E4M3, which is the important map. I think we can take Void this weekend, I really do.


Came in early this morning to play Myth with Oli. Woohoo, lotsa fun.

Myth is a lot of fun when played over a LAN. Unfortunately our Mac sysadmin is a buffoon, so 3 out of the 6 G3 macintoshes wouldn't even boot up. The other 3 were rigorously playtested, along with 2 of the slower Macs.


Played Quake with AWOL versus Void. We got destroyed. I don't want to talk about it.

Hey Jimmus, you mentioned that you have got the System Shock CD back from Ed. Could you try and convince Peter to bring it down to Dunedin next time he's around? I'd quite like to have another bash at it.

Shakedown Round 2 is pretty much finished now. I've posted Round 3 brackets (but hosts aren't finalised yet, neither are two of the brackets).

15/06/98: Trying to look at a paper by Schmidt in the Visual Computer 1993 on adaptive polygonization of implicit surfaces. It's really interesting... but it's making my head hurt.

Transcribed all of my references from my scratch working at the front of the book into the bibliography at the back of my book. Confirmed pages, volume info, etc. Also tidied up loose ends - I now have 3 avenues of litreview to complete.

Thinking about research proposal and modifications that should be done.

Trying to organise hosts for the Shakedown Round 3. I have a few replies so far, but not many (certainly not enough).

Dang ICQ is crashing continually. It's really frustrating, maybe I should just use email or IRC instead.

The Shakedown web host appears to have died. Aaaargh! What do I do now? I've spoken to a few people who might be able to help me rehost it.

16/06/98: I'm going to study in the library for most of today.

Reviewed a good fraction of IEEE CG&A from 1985-1995. Quite a few useful articles, which will make nice additions to my bibliography.

Updated my BibTeX file with the bibliography entries from the back of my book. Now I have about 23 references, which isn't bad for an initial literature review.

Briefly rewrote and clarified a section of my research proposal which wasn't completely accurate in the light of further literature review. I plan tomorrow to go back through my proposal and find places to cite all of my new references.

Finally resolved Shakedown Round 2, Bracket 7 results, after much moaning and griping.

Posted quite a bit to the forums on the Myth Codex ... somewhat trivial things, but amusing nevertheless.

17/06/98: Fixed some bugs in my BibTeX file, regarding misplaced commas etc.

My one to two page research proposal is up to 6 pages now. Oh well.

Emailed Richard O'Keefe about the research proposal, hopefully I will get some feedback on my final draft sometime soon.

Did some SERIOUS thinking about my PhD, data structures, algorithms. I think I've got most of Phase 1 mapped out in my head... fingers crossed.

I managed to get a bit of something stuck under my eyelid when I woke up this morning (a bit of sleep, probably) and it hurt like buggery. I was able to wash it out in the shower, but now that I'm at work my vision in that eye is completely blurry in patches. I hope I haven't scratched my cornea or something like that. I guess I'll see if it improves later in the day.

Moved the Shakedown website back to www.wwwebservers.com. Still no word from Spry as to what caused the network outage.

18/06/98: Planned out a significant fraction of the class structure for my PhD. I think it's soluble, which is a good thing. I'm going to start implementing a simple non-regularised CSG parser initially, and move to normal form if I think it's going to speed things up in the long run.

My eye is fine now, excellent.

Apparently www.wwwebservers.com went down briefly due to a minor hardware fault, and will stay up for good now.

Moved the Shakedown to Round 3; everything should be set shortly.

19/06/98: Working on the overall object structure for my PhD, the class hierarchy is beginning to take shape in my mind.

Shakedown planning, things seem to be working out okay. Scheduling is still no fun. :(

Shakedown Round 3 Bracket 6 is shaping up nicely, we should play this weekend some time. Hopefully. If people can get their acts together...

22/06/98: Started coding today, set up a CSG tree project.

Wrote a nice wee script to automatically get my PhD, compress it, and back it up to a remote machine under the appropriate name, e.g. "phd.220698.tar.gz"

Coded up a good fraction of the classes that will represent my data structures. This has helped me see more clearly all the problems that I'm going to have in actually implementing this... oh well, that's why it's research.

I'm still not sure how I'm going to integrate the new system into Mirage. I think it may end up being standalone for a while yet.

Shakedown Round 3 Bracket 6 played on Sunday, Oli came second and goes through to Round 4.

Bungie have asked me to help be an administrator on bungie.net, so of course I said yes. Should be fun helping to keep the roving packs of foul-mouthed teenagers in line :)

Shakedown Bracket 4 played, some really cool films. (I give points in one game for artistic impression due to blowing up own troops).

23/06/98: Wrote a templated memory manager that I can use throughout my PhD... yummy. It seems to be working really nicely, first time ... just fixed a few typo / compile errors, and the first build is bugfree. I love it when that happens.

Coding up various neat algorithms for tracking object between the CSGgraph and the Primtree, at least in my head. Now I just have to write them down.

Shakedown scheduling hell... swapping people out of brackets left, right and center. Hopefully everyone will get a chance to play, fingers crossed.

People challenging my impartiality as a bungie.net Admin because I was supposedly selected because I knew some of the other admins. Well, duh... I don't really know what to say to these people.

I played in the Myth tournament organised by Bungie, the Platform Wars. I managed to win my first round bracket against some serious competition (woohoo!).

24/06/98: Redesigned the data structures for the CSGgraph class, to lie more along the same lines as Mirage (I knew there was a reason I did it that way 18 months ago!).

Started coding routines up for the CSGgraph and Primtree structures, in addition to the skeleton that I've already put up.

A significant amount of coding done today, lots of sketching of algorithms. I should have a working CSG / primtree system up and running by the middle of next week.

Oli's Platform Wars bracket is today at 2:30pm. However, everyone else in his bracket didn't show, so he just goes through to Round 2 automatically, lucky dog!

One of my friends (Peter Isotalo) got kicked out of the bungie.net admin circle... basically, he lost his temper and started abusing several Bungie employees in a public forum. Not a good idea.

25/06/98: Downloaded BRL-CAD from the US Army Research Lab's FTP server. I'm busy trying to decrypt and install it so that I can play with it.

Coding up algorithms for CSGgraph to Primtree conversion.

Major changes in the Primtree graph structure. Glad I made them, though, because it's now or never.

Rewrote a whole swag of primtree.cc in order to cope with the new Primtree data structures.

More Shakedown organising, substitute assigning, bracket switching. Gaaah!

26/06/98: Finished writing the incremental Primtree / CSG-graph updating routines. Now it's time to test them...

Some testing problems due to incremental templated constructors. I managed to sort them out with Mathew's help, and now I just have to address the real problems. Sigh..

Oh joy, a new bungie.net server log, 5 MB of text to browse through.

29/06/98: Handed my PhD research proposal in to Anthony. Now I just have to fill in a form for Registration and I will be officially enrolled for a PhD. Unfortunately this form requires some kind of arcane 'research code' which I don't know anything about. Anthony is going to see if he can track down the appropriate code for me.

Tried to fill in the PhD registration form. I require our Head of Department's signature so I'm going to go see him this afternoon.

Aaargh, the virtual methods in my CSG tree are making my program crash for no apparent reason. It's probably a C++ thing, grr.

The PhD registration form is submitted and done. Woohoo!

Three Shakedown brackets played over the weekend, which is a Good Thing(tm).

Organising what I'm going to do for my birthday; I think I'm going to go out for dinner on Sunday evening, probably to Cena.

Going to go and se Godzilla tonight... graaaargh!

30/06/98: Got some feedback from Richard O'Keefe on my C++ code. I'm still grappling with that damn pseudo-compiler bug that was causing me grief earlier.

Nooo! Found the bug, and it's an incredibly stupid mistake at a very fundamental level in my memory-handling code. Sigh, now I guess I should fix it...

Shakedown organising continues. I'm working on a third-party map that we can release for use in the final round of the Shakedown.

Went to the Albert Arms for lunch today, very nice.

01/07/98: Well, the official start date of my PhD has rolled around. Yay!

Finally, the initialisation / memory management code that I wrote a week and a half ago is tested and done. Now to check all the CSGgraph manipulation code is working.

After a few typo fixed, the CSGgraph topology manipulation code is all working, it seems. I've tested all of the clauses in the code, and it checks out fine. Now to write the matrix manipulation traversal routines.

Matrix routines written, I'll test them tomorrow.

Currently investigating getting Richard O'Keefe a usercode on the Graphics machines.

More Shakedown playing about... trying to soothe disgruntled players and organise brackets ad infinitum. At least my diplomacy skills are getting a workout.

Brackets 1, 2, 5 and 9 are playing... no idea when they will happen, though.

Went shopping, bought food.

Network outage across a large section of the central United States due to tornadoes, apparently. Bungie.net is down, as are smart.net and theresistance.net. Hard luck Bungie, as they were trying to play a tournament on there... whoops.

02/07/98: Trying to compile BRL-CAD, the US Army's huge CAD program. It's 480,000 lines of code, and it's a beast. The compile script takes an hour ... !

Fixed several small system incompatibilities and tried to recompile BRL-CAD. It all compiles successfully, but there isn't enough disk space to have the whole thing installed at once! Aaargh!

Browbeat people until they moved stuff off Small. Now there's enough disk space to do a full compile, so I'll leave it going and go home.

Shakedown scheduling, some problems but Round 4 should go ahead this weekend, if everything works out as planned.

03/07/98: BRL-CAD seems to be fully compiled. I'm trying to compile the documentation for MGED now, but it's going pretty slowly.

MGED documentation is compiled (without pictures). I'm reading it now and playing with the system (it's 250 pages long!).

Chris Handley has come back from CGI, Computer Graphics International '98, with the Conference Proceedings. I'm going to grab it and peruse at my leisure...

Had a good Quake practice last night, we stand a chance at holding our own this Saturday.

A little more Shakedown stuff. Round 4 is coming together nicely.

I'm going to embark on another Myth Tournament when the Shakedown gets closer to completion - the Myth World Cup. It's going to have the same bracket structure as the FIFA World Cup, and hopefully be just as much fun :)

All the scores for the original Shakedown brackets are in now. Just the absentees' bracket to come.

Shakedown Round 3 is complete, Round 4 has begun (and has ten days to complete).

06/07/98: Finished looking through the MGED documentation. It's an interesting system, but I don't think it has much to teach me.

More generalised thinking about algorithms and data structures for the solid octree propagation upon manipulation.

Had a look at the ITS's network recommendations for the graphics lab. Implemented some measures to reduce network bandwidth (running Netscape with a cache directory located on a remote NFS filesystem is bad.)

Well, we got pummeled at Quake over the weekend (again), but we came the closest to winning a level that we have so to date.

My birthday dinner was very nice indeed; Cena is certainly an excellent place.

07/07/98: Planned out the remainder of the SolidOctree implementation and algorithms.

Begun coding the octree code.

Preliminary octree structure is in place. I'm just thinking about the actual CSG combination / primitive octree creation business.

Organising the Myth World Cup - I've got web space and am putting together a design team.

Planning for our Quake game this weekend. Our team's looking reasonably solid.

08/07/98: Working on SolidOctree creation and combination. Had some thoughts about propagation of CHANGED flags that may require a rethink later on, but for now I'll see how it works.

Partially completed the SolidOctree recursive updating code. Stubs are implemented for all the SolidOctree code that I haven't written yet. It all compiles fine, but dies if I actually run it (well, duh...). Lunchtime!

Debugging SolidOctree, devising methods of visualising the 3D octree structure.

Wrote a dump-octree-to-text routine and it works! Woohoo.

The update-transform routine appears to be working. I have to check the CHANGED flag is being propagated correctly, which I can do once I get the incremental octree update going.

Wrangling with Bungie over the exact rules for their Order Circuit. Grumble.

Designing images for the Myth World Cup.

More Shakedown scheduling, some people are irate that they've only got a 56k modem guy hosting their bracket. Plebeians.

09/07/98: Wrote the incremental-update code for the octree, hopefully it will scream along. Time to test it.

Hmm. Surprise, surprise, it doesn't work. I'll look at it more this evening, but it should be fixable.

Shakedown scheduling again, one guy's email is broken, it seems. Unfortunately he's hosting a bracket.

Round 4 Bracket 1 is complete! Time to review the films.

Aaargh, those klutzes in Bracket 1 played the wrong maps for the Shakedown. Sigh.

10/07/98: I had a look at the problem that I ran into last night, edged around it, changed a few peripheral things, but the bug's still there. I guess I'll tackle it more firmly this afternoon after the graphics meeting.

It appears I made an FTP blunder and failed to update the Rules page on the Shakedown's remote web server, which is why Bracket 1 played the wrong maps. Ooops.

HTML prototyping for the Myth World Cup... I need to write a few applets, which should be fun.

10/07/98: No work; it's the weekend!

Wrote a large amount of HTML and C++ application widgety things for the Myth World Cup.

Played a lot of Myth.

Played Quake with AWOL; we won, and beat DMC (the Dark Ministry Clan) into the ground. Good to see - our first win of the Bloodrain season.

11/07/98: No work; it's the weekend!

Finished up HTML code for the Myth World Cup front and news pages.

Wrote a modular database interface in C++ for the Myth World Cup.

Played a lot of Myth. Shakedown Bracket 1 completed; cool.

12/07/98: No work; it's the weekend still! My sleep patterns this weekend have been as follows:
  • Friday: get up at 7am, go in to work.
  • Friday night: Hmm, I have to be up at 5am tomorrow morning for a game of Quake. I should go home now. Oh, Julian is going to go see Mortal Kombat 2 at the movies? Stuff it, I'll stay up all night.
  • Saturday: play Quake all morning. Go home at midday for a nap.
  • Saturday night: get up at 5pm. Do Shakedown stuff all day and early Sunday, and early Monday morning.
  • Monday: go to sleep at 6am. Wake up at 6pm.
Yeah, I know, but I have to when I have commitments at 3am, 2am, 5am repeatedly.

Played a lot more Myth and Quake.

13/07/98: Sorted out where all the machines are going in the new building.

Shakedown Brackets 2, 3 and 4 completed. I'm busy sorting out the entrants for the semi-finals (Round 5) right now.

Some extremely funny people have formed the Force Clan for Quake. They have a section on their web site called "I'm A Dork And This Is My Quake Clan". Very, very funny indeed. If you want a laugh, go check it out.

14/07/98: Made some significant progress with the incremental octree-update code. I've fixed one update problem, but another remains.

Allan still hasn't come over and moved the machines like he promised he'd do. Grr.

Wrote a news-database tracker for the Myth World Cup pages.

Shakedown Round 5 brackets are complete.

Finished the automatic news-item page generator and linked it up to the automatic FTP updater.

15/07/98: Attended today's fourth-year talks about their projects, and lashed a few with questions.

Lots of updates to the HTML, database engine, C HTML generator, FTP engine and JavaScript for the Myth World Cup. Yummy!

16/07/98: FOUND and FIXED the problem with my octree-updating code, after about 12 hours trying to find it over the last three days. Turned out to be a problem with my understanding of C++'s precedence order. I wrote
and it was interpreted as
when what I wanted was
Oh well, I won't make that mistake again in a hurry.

Removed all the debugging messages from my code.

Sigh... people having problems with my judgements in the Shakedown. Oh well, they can just take the decisions, because it's not going to change now.

Arranged brackets, hosts and times for the Shakedown Round 5.

17/07/98: Fixed another problem in the incremental-octree update code that was resulting in large areas being flagged as changed, when in reality there was a more complex changed-octree structure meant to be present.

Gave a talk to the graphics lab about my PhD progress so far.

It looks like #CP# are up in arms at me about Sven's elimination from R4B4 due to the fact that I'm discarding the tenth game for scoring irregularities. Well, tough.

Scheduling the Shakedown semi-finals, it's a hassle. At least I've found two more T1-class hosts.

Added a counter to the Myth World Cup page.

18/07/98: No work at all today.

Wrote some pretty Java applets for the MWC page. Mmmmmmm...

More MWC graphics updating. Fun fun fun!

Bungie.net admin things, oh joy!

19/07/98: No work at all today.

Scheduling Brackets 1 and 2 of the semi-finals, Bracket 2 will play this evening at 12 noon EST, which is 4am NZST. Another long night, I guess :)

Wrote a neato Java applet that ticks up units killed on the MWC main page. I really hate some of Java's features, but at least it all works now! I'm not planning on touching that for a looong time.

Tried to play the Shakedown bracket 2, but we had 2 no-shows and had to call it off. Going to reschedule.

20/07/98: All the workstations are being moved around this morning, so I'm just going to do some thinking and reading.

Took the opportunity of chaos and change to do a bit of tidyup. Picked up dirty cutlery from behind tables, threw out about a ream and a half of scrap paper, rationalised textbooks and manuals etc.

While doing the tidyup, found an important document that I should get Brian to sign and give to Registry. I'll do that this afternoon, as Brian is in a staff meeting right now.

Gave Brian the document in question. Woohoo, my scholarship money should start being paid now!

Reading Richard Dawkins' "The Selfish Gene", which I picked up second-hand at Scribes for $10. Not a bad deal, and an excellent book.

21/07/98: Off to the library, 2-year-old photocopying card in hand. I hope they can transfer my money from my old card :)

Didn't do any photocopying as it turns out. I read a few very useful papers on implicit surface polygonization, which gave me some ideas of my own that I'm going to rough out this afternoon.

I had some interesting ideas, but I think the first thing to do is to get a rough system going first. That's what I'm going to work on tomorrow.

Couldn't sleep, so I came in early to work this morning. I was walking in at 3:45am and stopped in the middle of Great King St. It was silent. The only sound I could hear was the wind in the trees. There was almost a post-apocalyptic stillness in the air, with the crossing lights blinking slowly on and off. I shivered and continued on to work, feeling rather small and insignificant.

Myth World Cup stuff; more images come in, the site takes shape. Should be ready to open for registration in a day or two.

Spoke to Bungie, and we worked out that the Myth tournament market is a bit flooded right now; once their Platform Wars finishes, I'll start the MWC. This work out to an approximate start date of August 10th, with registration opening on August 1st.

22/07/98: Aargh! Went to bed at 11pm, slept through my alarm, and woke up at 3:30pm! How did that happen? Who knows?

Finally got into work at 7pm, after tidying up non-work-related things in the late afternoon, and having dinner. Going to settle down and code up the polygonization routines (at least in sketch format) this evening.

Never managed to get settled down to work. I'm just going to go home. I managed to get a bit done on the auto-FTP program for the Myth World Cup.

Shakedown semi-final should go off as planned tomorrow.

23/07/98: Arrived somewhat earlier to work this morning (8am).

Planning, thinking about the terminal structure in the SolidOctree.

Helped Leeann move the new chairs from Archway over to the Graphics Lab. They're nice... mmm, comfort.

Wrote some terminal-inout code this morning. It looks like I'm going to have to add new Primitive routines to Mirage that have the right interface to mesh well with my new project.

More MWC website designing. Problems with Netscape 3.0, argh.

Shakedown semi-final A completed, with a few hitches (namely, host not showing up). Now I just have to wait for semi-final B, which takes place this weekend.

24/07/98: Added a completely new interface to Mirage's Primitive system to assist the interactive CSG modeller.

Well, I've added 3200 lines of code to Mirage today (most of it cut-and paste). I hope there are no bugs (hmm...). Testing tomorrow.

Myth World Cup tweaking, small image enhancements, etc.

People flaming the bungie.net admins on a Myth message board, so we descended upon them and smote them with our righteous fury (heh heh).

Some very nice new articles on www.tomshardware.com ... I especially like S3's response to his post (heh).

Went out for dinner to the Little India. Very nice, and very hot :)

25/07/98: No work today, it's Saturday.

Trying to draw Stickler into a rational discussion on the bungie.net forum. Not having much luck, though.

Playing Myth, Myth is gooooood.

Made some screenshots of a fake 'soccer' game for the Myth World Cup website and its first feature. It's pretty classic :)

Shakedown semi-finals are complete now - I'll schedule the final tomorrow.

26/07/98: No work today, it's Sunday.

The University network fell over almost totally at around 10pm. I guess I don't do any play today either. :)

Made a few changes to the Myth World Cup site, can't FTP them because the external network is gone.

27/07/98: Looks as though my work will continue at a slower pace this morning - those buffoons over at the ITS still haven't fixed whatever is causing the broadcast storm on the main FDDI ring. And because we aren't allowed to have any network monitoring tools, we can't even tell whether it's our fault! Gosh, I really hope it isn't one of Julian's Quake servers... that would be bad. Still, our intra-lab performance is unaffected, so it can't be us, at least I think that's how it works.

The network performance is fixed! Now I can work!

Oops, it seems it was one of the Graphics machines that was storming the campus net.

Debugged and tested the cellinfo creation. Woohoo, it works!

Working on the PolygonObject data structure, a bizarre segfault though. :(

Went to the Regent and watched a film from the Film Festival; a compilation of animations from around the world. Some good pieces, but quite a few that just weren't worth watching.

28/07/98: Trying to track down the segfault, but didn't have much luck. I suspect it's caused by my improper understanding of how the CopyTerminal relates to the memory deletion structure. I'm going to take out the CopyTerminal and replace it with a faster, more memory-efficient structure that tracks references.

The reference tracker is done and appears to be working perfectly.

Writing a topology generator on a cell-by-cell basis for the polygonization, a la Lorenson's paper in SIGGRAPH 87.

The polygonizer is mostly finished now; I just have to tidy up a few things tomorrow and then I can work on putting the terminal-node polygon subsets into a single objectset that can be previewed (say, in OpenGL).

Got the postal address of the Shakedown guess-the-finalists competition winner and sent it off to Bungie. They'll send him a prize sometime today :)

30/07/98: Didn't get around to updating this work log yesterday. Ah well.

The polygonizer is linked together now and setting up coherent polygon lists. Now I just need to link it to an OpenGL / Togl application with buttons that you can push.

Dammit, the Mesa OpenGL distribution isn't set up consistently across machines here. They're all different versions, aaargh! I will probably just design a system-specific application that runs on Small.

Sorting out Quake tactics for CTF1 and CTF4; we have our advancement / relegation game versus 'Naughty By Nature' this Saturday. There's also a practice game versus DMC this evening.

Scheduled the Shakedown final for this Sunday at 8pm CDT (around Monday lunchtime NZST).

Myth World Cup progresses well. I learnt how to write Perl scripts and created some rudimentary cgi-bin programs to handle the registration forms.

Writing an automatic-emailer program for Myth World Cup publicity purposes.

31/07/98: I am STILL having trouble sorting out the right Mesa, X, OpenGL, Tcl and Tk versions in order to get a simple triangleviewer program working! Aaaaargh!

The AWOL practice vs DMC sucked. We didn't get 2 of the core members showing up, and had to use our 'filler' wombles.

Myth World Cup is almost ready! The Feature absolutely rocks and Ben managed to fix some bugs with my HTML code as well!

Ouch, one of my Myth Admin friends had his computer broken into while he was away on work and his Admin account was stolen + used to maliciously impersonate him. Not good.

Myth v1.3 is out. Party time!

01/08/98: Weekend, no work.

Playing a looooot of Myth v1.3.

Myth World Cup opens for registration. The hit counter has kind of hit the roof.

Woohoo, AWOL won the relegation game versus NbN. That means we don't drop down to Pool B in the Bloodrain CTF League!

02/08/98: Weekend, no work.

Playing more Myth, Myth is good.

Myth World Cup is up to 22 orders so far.

03/08/98: Rewrote my research proposal from the 26th of June, trimmed it down to half its size like Brian and Anthony wanted. I'll drop it in to the office tomorrow.

Myth World Cup is up to 33 orders now.

Tried to play the Shakedown grand final today. God, what an abortion that was! One guy's ISP died as we were setting up the first game, and another's died after 6 games. We're going to try and reschedule, probably.

Case of the Myth Codex has offered me a position helping to edit their tournament news. Should be interesting, but I'm going to hang fire until the 13th of August at least, as I have to give a seminar on my research to the department, and that will require quite a bit of preparation.

Myth World Cup stuff... fiddling with the automatic HTML generator so that it only uploads the pages that have changed.

04/08/98: Fixed a rather insidious bug in the polygonization code related to sentinel values that were actually inside (but on the very fringe) of the valid dataset. The polygonizer is totally fixed now.

Profiling my polygonizer to see what areas I can speed up.

It seems a good 30% of the time is spent creating the cellinfo structure for the polygonizer to do its work on. I'm looking at this routine and seeing if I can speed it up at all.

Having a good long play with the polygonizer, trying to cut down the number of point_intersect calls. Should be possible to reuse all the other cells' inout values.

Well, I cut the point_intersect calls by a factor of four. Woohoo!

My 'improvements' have made my program continually crash. Hmm, I will work on this more tomorrow.

Argh. Apparently some doofus in the United States has reverse-engineered the bungie.net networking protocol and is using it to flood the servers with fake win reports for him. We're going to nail him, but he's screwed up a lot of things.

More MWC stuff, 41 orders now.

05/08/98: I've been working with my polygonizer, optimizing it all nicely. It all seems to be working beautifully, except for the fact that when I changed the resolution, it gave me anomalous ray-intersect cases. Argh! Back to the debugging phase, it seems. :(

Fixed the ray-intersect problem, at least partially. Started working on another problem, which is that profile edges are remarkably jagged. Have to sit down and think about whether this is a limitation of the method, or a bug.

Bought tickets to go see the X-Files movie this Saturday.

AWOL are preparing for our game this Saturday, vs DMC (the only Pool A clan we've beaten). We're playing on one of the wombles' favourite levels, which should be good.

MWC up to 44 orders.

Wrote a pool-page generator for the Myth World Cup pages. Now I just need the images for it, and I also need to write a generator that outputs the page for each pool, and a generator that creates match pages, and I have to make links from the main news page to the most recent match pages, and I need to make links from each team's page to its match pages. I also have to put together a 'match reports' page. All by the 10th of August.

06/08/98: I've been thinking about including normal information in the polygonization data structures. This will produce smoother reconstructions, but requires a significant amount of re-coding. I don't know if it's worth it, but I might investigate it tomorrow anyway. It will require a significant change to the cellinfo datastructures, and I don't know if the memory usage will remain within reasonable bounds.

Went to see Steven and Mathew's PhD presentations today; they gave half-hour seminars to the department. I have to do the same thing a week from now, so this kind of spurred me into action. I'm at a stopping point for my research right now, so it's time to stop active research and move into seminar production mode.

Myth World Cup is up to 54 orders now.

Wrote the generator for individual pool pages for the Myth World Cup; code reorganization and tidyup. I really need to hustle if I want to have this all finished in time for the start of hostilities on the 10th of August.

07/08/98: Storyboarding my presentation, it looks fine.

Oh dear, rather bad problems with my Myth order (The Corporation). I may well end up leaving.

More MWC orders... 61 now.

Argh, there's a feature film being made based on the Wing Commander series of computer games. Sob.

The Corporation has disbanded.

Must sleep well, clan match at 6am tomorrow morning.

08/08/98: No work, weekend!

Up at 5am to attend clan match. Sigh. :)

We got pounded into the ground. So damn aggravating too; I do my job, but it seems like the rest of the team just falls to pieces around me.

Did some MWC stuff, it's all going quite well.

09/08/98: No work, weekend!

Went to see the X-Files movie last night; it was reasonably good. Like an end-of-season finale episode, but with more money spent on it...

Wrote most of the C++ stuff for the Myth World Cup. Nearly ready to launch the tournament, probably on the 12th or 13th.

10/08/98: Trying to do my presentation, using PowerPoint 98. Unfortunately the Office 98 installation on Juliet seems to be corrupted. I'm trying to track down our Mac sysadmin, but she's busy this afternoon, so I have to use the small Mac (with only 32 MB of RAM!) and it's a chore.

Mirage stuff... fixing the configure script and the final v1.0.6.1 update.

More storyboarding of my presentation, the text is somewhat complete now.

Myth World Cup registration seems to be static at 69 orders. This means the tournament will be 64 in size, rather than the 80 I had hoped for.

I found a place that will sell me a PII-400 with 128 MB of RAM, a Diamond Viper V550, a Riva TNT-based 3D accelerator, a 7 GB hard drive, a 2x DVD-ROM drive for approximately $3300 inc GST. Excellent! Going to wait a while, though, certainly at least until Intel's next price drop on the 26th of August.

MWC now at 75 orders. I hope to break 80 before registration closes.

11/08/98: I've been helping Tracey fix Juliet. Three of the four disks are severely fragmented, the SCSI chain is playing up, Office 98 is corrupted, aargh. It's a warzone.

Juliet seems to be mostly fixed. We defragmented all the disks, reinstalled Office 98, and fixed the problems with the SCSI disks.

Spent most of the rest of the day preparing my presentation's slides. Just the text so far.

It's now midnight, and I just finished preparing several images and writing a complex diagram on a portable whiteboard. Tomorrow, I have to prepare two more images (the toughest...), write the words that I'm going to say, and practice my seminar! Oh, and hire a projector from the ITS, and arrange for the Department's Powerbook.

MWC is now full, with 80 teams entered.

Doing lots and lots of Myth World Cup stuff!

MWC starts today. Qualifying Round has two weeks to complete.

12/08/98: All our computers are being upgraded to Red Hat Linux 5.1. This is causing disruptions at work... (the day before my seminar, aaargh!)

On top of the computers being reworked, the network is absolutely un-usable! My work has basically ground to a standstill, and I don't know if I can finish my seminar before tomorrow morning.

Finished generating pictures for my seminar. Had to fix a few bugs in the system to do so... whoops. :)

Finished preparing my seminar... it's now 2am. I'm going home to sleep now, I will get the chance to practice it tomorrow morning, several times.

Aaaargh! It seems I pushed my sleeping patterns past the 'critical point' that makes me sleep through my alarm. :(

Lots of MWC scheduling stuff.

13/08/98: Practicing my seminar, looks good, about the right length as well (20 minutes).

Seminar went very well. Some moderately tricky questions, Kevin seemed pretty impressed with my presentation so I'm quite happy.

Myth World Cup stuff, some scoring changes.

Results are arriving for the Myth World Cup... 2 matches so far.

14/08/98: I raised some supervision and equipment issues with Anthony after my seminar yesterday. He says he'll deal with the supervision issues, and that we're going to have a talk about equipment today at the Graphics meeting.

The equipment talk was pretty much a non-issue. It seems that a consensus isn't going to happen; Kevin is strongly blocking any purchase of NT workstations, I think he's worried that I only want the machine to play games on. I really hope I'm not forced to use Linux for my PhD.

Ray's lecture is at 12 noon in Chem 1 in the Chemistry building.

Went to Ray's lecture and got bamboozled with inorganic chemistry... actually, it wasn't too bad. I wasn't sufficiently sure of myself to ask questions during the seminar, however :)

If Peter is reading this to you, Ray, it really was nice to catch up with you again. Didn't get to show you my flat, but that's not really important anyway.

15/08/98: It's the weekend.

Myth stuff; I have been accepted into my new order, Altus Praeses. Played a few games with them that were rollicking good fun.

Myth World Cup is ticking along well. More matches!

17/08/98: Now that my seminar is out of the way, I'm going to look at overall directions for my PhD and do some strategic planning.

I've sorted out what directions my research is going to take in the next couple of months. Also did some planning as to the new ray-casting algorithm for the pointinfo determination in modified terminal nodes.

Played the final of the Shakedown today, it went off pretty smoothly. The winner was none other than the infamous (!) Papascrub.

5 more MWC matches processed. The qualifying round is now 10% done!

18/08/98: Man, my sleep patterns are stuffed right now; got up at 2pm today. Argh!

It's now 6pm and I haven't had a chance to do any work because Geoff promised he'd meet with me this afternoon, and has been stalling me repeatedly. He just told me that he can't meet me at all today, it will have to be tomorrow.

Myth World Cup stuff, I had 80 email messages to process this morning.

MWC is going quite well on the whole. Many problems with out-of-sync errors in Myth.

I've decided not to play with AWOL any more; I don't have the time at the moment.

19/08/98: Back in sync with the real world and loving it.

Partially implemented the new ray-intersect technique for pointinfo calculation. No real problems, and the code is probably about half-done now.

Had a good long talk with Geoff about directions for my PhD, which resulted in some dramatic hatcheting on my research proposal. Chopped the length in two and it's now much more readable.

Mucho Myth World Cup stuff.

Julian found an interesting web page...

20/08/98: Emailed Richard O'Keefe with my modified research proposal, might get some feedback on it. Maybe.

Huge screeds of email for me to process; I'm going through the motions now.

Processed + updated large numbers of MWC games.

21/08/98: Set a regular PhD meeting time with Richard O'Keefe; 3pm on Thursdays.

Finished implementing the ray-intersect routine, it has sped up the CSG to polygon conversion significantly. Next stage of my PhD: integration of triangle viewing + triangle output.

Processed + updated large numbers of MWC games.

Went to McDonalds for Steve's girlfriend Tracy's birthday. We told her to get dressed up for dinner, didn't tell her where we were going... heh, heh. Also amusing: the look on the girl's face at the counter when I ordered $70 worth of food at once.

22/08/98: No work, weekend!

It is a lovely day outside, so of course we're going to go play Quake. SouthLAN is this weekend; the Technology Suite at Kings' High School becomes a Quake-a-rama :)

23/08/98: No work, weekend!

More SouthLAN; I had a lot of fun, and got to smite some people, so I was pretty happy. Couldn't find people who wanted to play Myth though :(


150 emails this morning over the weekend. Slow going!

Finished going through the emails and tagging+sorting all the MWC ones. Now it's back through for a second pass.

Processed many, many MWC films. Didn't see Geoff at all today (even though I was looking very hard), so no work either. :(

25/08/98: Cleaned up my PhD directory, moved 100 MB of stuff that didn't need to be backed up twice weekly. :)

Massive amounts of trouble with libC versions on Small. I'm getting thoroughly sick of GCC and OpenGL and Tcl and Tk problems and version conflicts.

Managed to hack around the problems with libc in order to get my OpenGL viewer up and running.

Debugged an extensive portion of the CSG triangle generator. Still some problems in the CSGTerminal creation, it looks like.

Fixed all the CSGTerminal bugs. I just have to try and deal with aliasing artifacts now.

More Myth World Cup reviewing.

26/08/98: Not going to do any work today; it's the final day for the Myth World Cup's qualifying round and I'm devoting the day to organisational things for that.

Processed about 20 matches, updated the webpage.

27/08/98: Had a meeting with Richard O'Keefe and sorted out quite a few things about the graphics lab, where I want my work to go, and other things like that. We've set a regular meeting timeslot, and I'm going to try and shoehorn Geoff into it.

No dice. Geoff wants us to accomodate our timetable, because he customarily goes to afternoon tea at that time. Grr.

Spillover from yesterday, more MWC stuff. Reviewed about 20 matches since this time yesterday.

28/08/98: Lots of meetings to talk about future equipment grants that are coming to the Graphics lab, and whether or not I can get a research machine out of them.

More MWC stuff... lots more.

MWC Qualifying Round is finished, all films processed, teams are calculated. Now I'm going to go home and sleep, as it is 12:55am. :)

29/08/98: Weekend!

Fixed a few problems with the MWC QR scoring.

Played a bit of Myth.

Set the Myth World Cup first round in motion! Excellent! :)

30/08/98: Weekend!

Spent most of the day at home cleaning / tidying. Went to see a movie this evening; Sliding Doors. A very nice little gem of a film which I would recommend to nearly everyone.

31/08/98: Partial integration of the CSG construction and polygon viewing phases. Has a non-existent UI at the moment, but it's enough to test framerates.

Thinking about normal calculation, adaptive subdivision and memory requirements.

Keyboard on my main work machine died, so it was out of action for most of the afternoon. Drat. It's back in action now, though.

Started looking at a normal-storage representation scheme. It's going to require a major rewrite of most of the cellinfo stuff, though, so I'm reluctant to do it. :/

Altus Praeses won another tournament match this morning; woo! We've advanced to the final of the Dwarven Cannibals' tournament, where we will play Destruction Eternal.

Myth World Cup stuff goes well. I'm thinking about modifying a few existing third-party maps for the next MWC round.

01/09/98: Working on my PhD; added another array to Terminals' pointinfo, basically splitting edge and point information apart. This requires quite a bit of work on everything that deals with the Terminals' internal structure, but lets me store normal information for smoothing purposes.

Argh. Interruption time; I've found a major problem with Mirage's internals. Oh, bother.

The Mirage problem is deeper-rooted than I thought; it's a big one. Erk. I think I'll put it aside for now, and go back to working on my PhD for the meantime.

Note to self: abovecluster_transform stuff done for prims, intlist. raytrace.c no idea re: hitpoint translation. investigate light.c, texture prototyping. versioning with old texture code?

Finished the normal-sampling code and hooked it into the display subsystem. Gouraud shading improves the visual effect significantly. Next up: tinkering with the UI for my demonstration to Richard on Thursday. Also have to come up with a way of fixing the CSG-cell errors.


02/09/98: Playing with OpenGL; putting a coherent rotate/translate/zoom view interface on the modeller.

The view manipulation interface is finished now; 6 DOF controller is pretty much complete.


03/09/98: I have a meeting with Richard O'Keefe this afternoon at 3pm; he hasn't turned up yet, and I'm getting frustrated.

Argh. Richard said he can't make it; he forgot and double-booked himself. I guess I don't have any feedback from my supervisors this week, either. Sigh.

Bungie.net admin stuff; searching through logs for rank-system abuse and listing dummies / padders.

Writing an automatic dummy-finding program.

04/09/98: Received notification of the 1998 National Postgraduate Student Conference. It's going to be held in Wellington, sometime in December.

Found a small problem with my edge-encoding scheme that was causing division by zero in some cases.

Added some features for tracking the odd CSGpoint-polygon errors which I'm getting. Hopefully this will let me track them down.

Films for the MWC Round 1 are arriving! People keep losing the films and mucking up the game settings too... sigh.

05-06/09/98: No work, as it is the weekend.

Myth. Lots of Myth. Watched the movie 'Merlin' on Sky, too, it wasn't too bad.

07/09/98: Time to do some serious work, after a few days' rest.

Went to the library and started boning up on adaptive polygonization techniques that I can use for my CSG modeller. However, I have quite a few constraints that aren't satisfied by many methods: they should be separated into distinct data-gathering/subdivision and polygonization phases; they should be fast-ish; it should be possible to combine their data structures via CSG easily; they should be able to deal gracefully with high-frequency data.

Changed my current polygonization from center-OUT disambiguation to center-IN, which is a better tradeoff for the kind of objects that I'm likely to be polygonizing (connected ones). This produces a much nicer visual effect. However, in the process I seem to have introduced an intermittent minor bug, which I'm now trying to hunt down.

Fixed said bug.

Finally got my research proposal back from Geoff, and handed it to Anthony! It's good to get that out of the way... now 3 months into my PhD...

More MWC results, which is a Good Thing. Here's the results email I got from Fiver of the Watership Down order:

Zorn, the warren, zorn. The men came and clogged the entrance holes, then they gassed the warren. I barely escaped; Buckthorn fought valiantly, but he disappeared. I could find neither Hazel, Hawkbit, nor Strawberry. I saw the carcass of Bigwig though, it was awful. I fled as fast as I could, Campion was right behind me, but he must have fallen pray to the men and their guns, for when I looked back he was gone as well. I ran until I fainted, and now I am here to tell you the terrible news. Frith-rah save us!

(They lost to Aleph Naught, quite badly.)


Been helping a friend with some website redesign at Webintosh.

Scoring and analyzing MWC games. Lots of them.


Reviewing more MWC games, learning how to use 'Despair', a Myth map editor. I figure that I can do work once the current MWC round is out of the way (should be by tomorrow).

10/09/98: All the fourth-years are rendering their animations on my primary work machine, and they've filled up the disk. Grr.

Some buffoon is trying to dispute a decision I made in Round 4 of the Shakedown, despite the fact that the tournament has been over for three or four weeks. What a fool.

More MWC reviewing, pretty much done now. Trying to decide the games for the next round.

11/09/98: Photocopied some papers for Richard O'Keefe to get him up to speed on the background for my PhD.

Paper reading, reference chasing.

MWC Elimination Round Two has begun; brackets, rules and maps have been posted on the MWC website.


Myth; some experiments with map making, a lot of game playing.

14/09/98: Lots of deep thinking about polygonizers, but I haven't come up with a final solution.

Learnt that Geoff is on sabbatical next year; he says that he plans to be in NZ for most of the year, doing his own research and supervising students full-time. Hurrah! I guess that makes Year One of my PhD the 'Chris Year', Year Two the 'Geoff Year' and Year Three the 'Richard Year'.

I'm going to try and implement Laidlaw and Trumbore's paper on a cell-by-cell basis for the polygonizer. This will produce exact edges, but it might take a LONG time.

Thinking of recruiting some more people for our Myth order.

15/09/98: All the main work machines are full, so I have to move to our SGI box :( Ah well, it doesn't really make any difference for what I'm doing (mainly thinking) anyway.

After a lot of thinking, I know what direction I want my program's polygonizer to take. Let the coding frenzy begin!

Updated the Altus Praeses website a bit.

16/09/98: After many, many changes, my system's data structures have been rewritten into the new format and the code all compiles. Lunchtime now; after lunch, I get to see if it works.

Surprise, surprise, it's not working first time. I'm trying to track down the problems now.

Nasty, evil problems will have to be fixed tomorrow.

Trying to get password protection working on the AP web pages. It's not working. :(

17/09/98: Tracking down bugs in the code that I wrote yesterday; several major flaws with the rewritten polygonization code have fallen before close examination.

The rewritten polygonization code is totally fixed now. Spent a while looking at how I'm going to implement the Laidlaw and Trumbore algorithm.

Carch's Myth Lexica opens today.

18/09/98: Wrote about 900 lines of code, and that's only a partial implementation of the polygon-CSG algorithm. Splitting and sorting is implemented, I just need to implement the hack-o-rama ray-casting that they do.

After, of course, I get the code I've just written up and running. That will probably take most of Monday morning.

Going to Filadelfio's for dinner tonight, should be very nice.

19-21/09/98: Pretty much no work over these three days.

Myth World Cup; practicing for my order's match on Sunday.

Well, we played the match. What an abomination. Repercussions that I had to deal with for all of Monday, ended up wasting a lot of my time. :(

22/09/98: Maybe I can get back into work today; didn't get anything done yesterday.

Debugging code that I wrote on Friday. Problems with face/face intersections, it appears.

Spent the entire morning and much of the afternoon tidying up MWC crises and reviewing films. Aaargh!

23/09/98: Aha, I've found several obvious problems with my polygon-splitting code and they'll be easy to fix.

Maybe I spoke too soon. The intervals seem to be mysteriously disjoint even though it's geometrically impossible for them to be so. More investigation is required.

Urk. I am a fool. Failure to understand the problem doesn't lend itself to the creation of a good solution, Chris!

MWC problems seem to be resolving themselves, excellent.

The OEM version of Half-Life has been released and from all accounts it is a superb piece of work. Looks like I might be forced to buy it at some stage.

Heh, a very amusing link: Mr. Slander's thoughts on Quake.

24/09/98: Well, after yesterday's efforts the polygon-CSG code seems to be conceptually correct. It's all working, but there are occasional bugs that I'm now investigating.

Found and fixed one problem with error tolerances.

The polygonization code is pretty much complete; I've tested it with a slightly more complex object (some tori intersecting) and there don't seem to be any new problems. Next step is getting Gouraud-shading working again.

Chatted to Geoff about my method, he seems to think it's reasonable, though of course he thought of it about a decade ago but never got around to researching it.

Went to the library and got some textbooks on long-term loan.

MWC Quarter-finals are being sorted out even as I write this.

Nice review of Shogo at PlanetShogo.

25/09/98: Went through and incorporated the necessary items for Gouraud-shading into my datastructures, and added the barycentric interpolation in order to let this work with the triangle-splitting algorithm.

Oooohhh... it's pretty. It all seems to be working, bar a few small bugs. WOOHOO!

Our Internet gateway died, so I can't do any playing. And nobody can probably read this, either. :(

26-7/09/98: No work, it's the weekend.

Took a good break from computers. Tidied, sorted out finances, etc. Posted a cheque for $1500 to Inland Revenue as the first instalment of my student loan repayment. Going to apply to BankDirect for a savings account (6.35% p.a, credited monthly) on Monday.

28/09/98: Learning how to do transparency in OpenGL; it's surprisingly easy, only a few minutes required. Fixed the last bug in the gouraud-shading code as well. The code is bulletproof as far as I can see, save for some numerical-tolerance problems in the ray-casting polygon-CSG code. There seems to be no way around this and it only occasionally produces an artefact (and they're usually very small, almost unnoticeable). So, it will stay for now.

This marks the movement of my PhD into its next phase, that of UI design. The task is to implement a user interface which makes manipulation of CSG objects not only possible, but easy to interact with.

I grabbed a swag of bookmarks from Steve Smithies, who's doing an M.Sc in user-interface design. I'm currently going through them looking for stuff; spent a very enjoyable few hours reading the Interface Hall of Shame.

MWC: strategising for my team's quarter-final. The games will be tough!

The Myth World Cup is going very well, teams are sorting out their scheduling and it all looks like it will fall into place this coming weekend.

29/09/98: Reading "The Art of Human-Computer Interface Design". Large, weighty textbook. Nice to sit in the sun with, though.

HCI browsing on the web; found some good online bibliographies, and the proceedings of SIGCHI '95, '96 and '97.

bungie.net Admin things; there are some really, really stupid kids out there.

30/09/98: Off to the library, to track down the most recent version of Ben Shneiderman's textbook "Designing the User Interface: Effective Strategies for Human-Computer Interaction". Tally-ho!

Said book is on close reserve, so I was only allowed to access it for two hours. But in that time, I managed to read quite a fair chunk of it, and assimilate it for lots of nutritious HCI facts.

I did some massive searches on www.hcibib.org and spent a few hours parsing the torrents of disgorged papers, looking for relevant publications. I found quite a few, but I have no idea how I'm going to get these papers; none are carried by our library!

Booked myself in for a training session on how to use the "Web of Science" system at the Science Library; on the 5th of October.

More web-based research; I'm currently picking the brains at Microsoft Research.

Discussing possible additions to the ranks of the bungie.net admins. We're going to give Bungie a Big List and say "These are good guys."

01/10/98: Fired off a series of Interloan requests to those hard-working library staff, who must be dreading the sight of my name by now. Hopefully I'll get some useful information back in less than geolithic time.

Lots of Deep Thought(tm) about a user interface to the CSG modeller. It's going to be quite a task.

Wasted a lot of time (one and a half hours) web surfing this morning.

02/10/98: My main work machine is being upgraded to Red Hat 5.1 this morning, so I'm working on more high-level design rather than coding.

I think I have most of the UI sorted out now. I've also been trying to think coherently about how to design transparent objects for primitive selection into the CSG-polygon structure, and I think I've got it.

Went to a seminar about Bob and Geoff's pet paper COSC 326; interesting.

MWC Quarter-Finals start tomorrow, so I've been busy trying to schedule teams, officials and hosts. Gah.

03-04/10/98: No work.

Myth stuff, argh, severe problems with the game's networking code going out of sync.

05/10/98: Fixing the problems that have been introduced with the OS 'upgrade' on my work machine.

Noooo - my program just dies now after the upgrade. No apparent reason.

Fixed the problem. Did I mention that Togl is a nasty, evil, dirty, ugly hack?

Solved a small bug with edgenormal calculation on vertex-vertex splits while doing polygon CSG. The gouraud-shading is all working very nicely now. I also implemented a wireframe mode for debugging purposes.

Trying to reschedule the games that completely failed to work over the weekend.

Busy debugging Bungie's Myth application for them, trying to sort out what causes it to go out-of-sync in network games.

06/10/98: Much thinking and many changes to do with object selection and ghosting.

Not much, really.

07/10/98: This morning I have to pick up on the issues that I left hanging yesterday. There are about three main areas of the code that need re-working in order to take account of the new datastructures for ghost and selection tracking.

After a great deal of coding, I believe that the selection structures are all complete. Time to debug it all.

Lots of debugging fun. It's all going rather well, on the whole, although I do wish that I had a decent debugger to use.

Going to go and talk to Rob about my character in our roleplaying campaign.

Well, that was simple. Just a few minor corrections, and he can enter play.

08/10/98: More debugging, I think I have the selection and manipulation processes hooked up to each other and working nicely now.

w00p! It's all working! Beautifully! It does pretty transparency things, with only a few shading artefacts caused by the incorrect draw cycle! WOOHOO!

Whole bunch of interesting news reports cropped up on the Internet today, and I spent several hours looking at them.

09/10/98: Well, today I have to design a ray-casting system for tracing rays versus the CSG object under consideration. Joy!

Oh man, there's a lot of code to be written. Mostly just stuff that I can grab from Mirage, but it all requires a bit of data-format conversion, yuck.

Going to play some Marathon tomorrow, might be fun.

10-11/10/98: No real work got done this weekend.

Cleaned our fridge, tidied a bit at home, stayed up all Saturday night playing Myth, spend most of Saturday playing Marathon, had a game of Quake with AWOL (which didn't go so well), etc etc.

12/10/98: I have to debug Mysterious Random Crashes(tm) in my ray-casting code now.

The crash bug was remarkably easy to fix; however, I have a somewhat more insidious problem that requires solving now.

Solved the problem with pieces of ghosts not appearing. The RCSG ray-casting code appears to be working perfectly, with no debugging necessary; excellent.

Moved on to recursive up-selection upon multiple-click now. There seems to be a problem with primcsgnode selection through wrappers, so I'm going to work on that now.

Fixed; damn, I feel stupid.

Updated the Altus Praeses members page with our two new members, Carch and Krunch.

13/10/98: I'm not really sure what I'm going to do today.

Spent two hours at the library, looking through the library's collection on Computer-Human Interface literature. It's pretty pitiful. I also got a pile of interloaned articles back this morning, which I assimilated and filed. Still, I have one useful article (!!) ... unfortunately, it doesn't go into any detail as to exactly how their technique works. I might try to track down the author and get some hard information out of him.

Julian just finished building Enlightenment, which is a cool window manager. I'm going to take the afternoon off and play with it.

Well, Enlightenment is very pretty, but it doesn't have a whole bunch of features (menus, a pager) that I want to use. I'm going to stick with fvwm.

Carch's Myth Lexica website is back up, with forums! Oh joy, another place to waste more of my time. :/

14/10/98: Some schlemiel of a third-year mailed the password file of our main departmental server (atlas) off-campus. This resulted in atlas and hermes being taken offline for most of the morning, and a severe disruption for most of the Department. Oh, they must pay.

I tracked down Dan Venolia successfully by email, and he told me that most of his work has been lost in multiple moves since he published that paper. He gave me a reference to US patent number 5,463,722 and I sent off an Interloan request for it (after spending about an hour finding out the correct process).

It's time to rewrite most of my viewing code, as I know how the modeller is going to fit together now. It's become rather intertwined with the Tcl interface and it will be good to get them nicely separated out again.

Lots and lots of coding, rearranging, function mangling etc. The structure of the modeller is a lot nicer now, though. I also learnt about display lists in OpenGL at one point when I got sidetracked.

Well, all the coding is done, the modeller compiles quite happily... and dies as soon as I run it. Bugger. The problem defies an immediate solution (i.e. I couldn't debug it in under 30-seconds), so I'm going home.

Placid is challenging my claim to Vidmastery on the VR / bungie.net forum! Oh dear, it's time to put my old boots on and show him that I can still do it. Once I get some spare time, that is.

15/10/98: Finished debugging the modeller; it's all converted over now. Mmm, nice. I'm going to have a look at turning the model into a display-list client.

Hooray, the display lists work. w00p! That was pretty easy, really. OpenGL can be very nice sometimes.

Fired off an Interloan request for another constraint-satisfaction object-matching paper.

Added a small ghost / no ghost check to speed up display. I wish I had some way of determining the framerate increase that this gives me.

I really like BitchX's Gaming Insider column. It's very amusing (most of the time).

Updated the Altus Praeses web page a little.

16/10/98: With the Graphics meeting and departmental barbeque this afternoon, I'm going to have to hustle in order to get any work done at all today...

Mike Gleicher replied to my email, and I'm now downloading his PhD thesis from an FTP site in the US. Oh happy day!

Hmph. Most of his thesis is corrupted; he says that he's working on a new web mirror and will let me know once that's done. I guess it's time to work on something else..

Played about a bit, organising MWC stuff for the weekend.

17-18/10/98: No work this weekend.

Supervised one of the MWC semi-finals; the other one is this Monday afternoon (my time, Sunday evening US time). Also vidded a Marathon Infinity map to prove to Placid that I am not a Spazeroid!

19/10/98: Mike Gleicher hasn't put together the new web archive of his thesis yet, so I'm doing some deep thinking about constraints for object manipulation in general. It's a thorny problem.

Well, I basically got no work done today. How depressing. I did help Geoff and Kevin with file format conversion for the assignment that they're presently marking, but that's not really good enough.

There's a MWC match at 2:30pm local that I have to supervise.

20/10/98: Well, I got no work done today. Dammit. Mike Gleicher still hasn't got back to me yet, either.

MWC semi-finals are over, Rabble Forces and the Clan Plaid Dwarves advancing to the final. Time for some organising!

Argh. I reviewed the Dwarves' films of their semi-final and they pulled some rather lame tricks that exploit a loophole in the rules. I'm going to close the loophole and get them to replay the games in question.

Shut down my 'Cash Draw Saver' with the BNZ, it was giving me a horrific 1.5% interest. I'm going to start up an 'Accelerator' account with ASB.

Done. I am now a happy little number in the machine that is ASB. I am also considering applying for a Visa card through them, as it could be useful for making purchases over the Internet.

21/10/98: Paper chasing, photocopying.

I've borrowed the bottom drawer of Steven Mills' filing cabinet, and I'm busy organising all of my photocopied papers.

More MWC stuff, politics, argh.

I got the CD that James sent me, and will burn Half-Life onto it once I get the current CD back from the guy that has it.

I am getting so sick of people that exploit the letter of my tournament rules in order to try and gain an advantage, then turn around and act wounded when I slap them down. This current situation is extremely aggravating.

22/10/98: Archived the pre-October 1998 portions of the work log.

I received my thesis back from the external examiner, and all the paperwork has been completed. I now have a piece of paper saying "You have been awarded a grade of A for your thesis and are eligible for the award of the degree of Master of Science with Distinction in Computer Science." ... woohoo! I will probably graduate in absentia in May 1999.

Well, the MWC semi-final situation has resolved itself, with some rather bad feelings on both sides. I am extremely unimpressed with the behaviour of several people involved, and will be barring them from entering any future tournaments that I undertake.

Oh god, I wasted most of the rest of the afternoon sorting out this asinine MWC problem. Sometimes I wish people would spend just a little more effort to look at the other party's point of view.

23/10/98: The Graphics Lab Smart Day is this morning, so I don't anticipate that I will get very much done at all.

And lo, I didn't get anything done at all. We went to Ombrello's for lunch, which was very nice (and rather dear!). Pumpkin ravioli, mmm.


24/10/98: Hmm, a long weekend. And the NPC final is being held at Carisbrook, too... I sense that it's not going to be a 'work' weekend.

Agh, ye gods, MWC conflicts. Read all about it on the MWC web page, if you care.

Went to see Saving Private Ryan at the movies. It's a long (3-hour) film, and one that I would recommend to virtually anyone with the maturity to actually comprehend what war is.

Organising a LAN gaming session for this Monday, in the graphics lab. Should be quite a lot of fun!

25/10/98: Sunday, bloody Sunday.

I slept in and missed my Quake match with AWOL; didn't realise that it was today, the long weekend kind of threw me off. Bummer.

It looks as though my PR antics have succeeded rather well, again. I wish I didn't have to keep doing this, though.

MWC third-place playoff match worked rather well, Civil defeating Foundation to win narrowly.

26/10/98: Labor Day, no work.

We decided to have a LAN-gaming day, and got a bunch of computers set up the back to play on. Carmageddon rules on a LAN. :)

Watched Goldeneye on video... man, James Bond movies are bad. Never again.

27/10/98: Reminded Mike Gleicher about his PhD web archive.

Hi ho, hi ho, it's off to photocopy I go.

Photocopied a whole stack of papers for my records. I'm now going through Dan Venolia's US Patent number 5,463,722 and boy, is it dense going.

Back to Rappoport's seminal 1997 paper on CDA modelling for interactive CSG manipulation. It's a good paper, but it has no references to geometric constraints; blast.

Wrote Half-Life onto CD for James.

More Myth investigating. It looks like silent-OOS may be due to Mac/PC version conflicts.

Reminded Bungie about my Myth II beta-testing application (it's been four weeks, and not a peep).

Sifted through a whole pile of Myth metaserver logs looking for people padding their accounts.

28/10/98: Downloaded Mike Gleicher's thesis.

Found the homepage of Ioannis Fudos, a guy who works with graph-constructive constraints in 3D. I emailed him about getting a copy of his PhD thesis, and we'll see how that goes.

Reading through Ioannis Fudos' MSc thesis, it's quite interesting but rather long.

Fascinating MSc thesis, basically developed many of the things that I'd like to look at implementing, but in a rather narrow, restrictive 2D case. I *must* get a look at his PhD thesis!

Posted James' Half-Life CD.

Found a cool thing called 3DMark99. It doesn't work on Mathew's Voodoo-1-based computer though. :(

29/10/98: Started reading Mike Gleicher's thesis in toto.

Oy, it's a large thesis. Sigh.

Finished reading Chapters 1-7. Fascinating stuff, but another 3 chapters to go tomorrow.

Found a very interesting Ultima: Ascension interview with Richard Garriot.

The System Shock 2 website looks cool.

30/10/98: Finished reading Gleicher's complete thesis; it's really given me an appreciation of just how much work a PhD is. Of course, his was a six or seven-year PhD, but even so it's staggering. Yow.

Going through Gleicher's references, looking for Nice Things.

Tweaked an expect script for easy access to the Library's computer.

Off to the library, to read UIST '90, '91 and '92...

Dammit. I forgot that I had already read (and dismissed most of) those publications. Oh well. At least I was able to read the University's (meagre) stocks of the Computer Aided Design journal.

My my, the Quake kiddies are getting remarkably hostile towards Trespasser because it doesn't work beautifully with their Voodoo 2 cards... heh, heh.

Sent my big list of Bad Guys off to Bungie for them to lock.

31/10/98: Weekend! Hallowe'en, even.

Bungie.net Admin stuff. Yuck. I feel all unclean now.

02/11/98: Hmm, a new month. Time really is flying, and I don't fell like I'm accomplishing much.

Re-evaluated all the directions of literature-review that I have available to me. I've now got a short list of things to look at.

Woohoo, I found the Web of Science online citation searching tool. Joy! I can play here for the best part of a week... I've already found about 15 articles to interloan and a whole swag to look up locally.

Interloans ahoy! Off they go, and I'll see if I get anything back that makes this whole exercise worthwhile... I also have a few nice lit-reviews from circa 1994 that I will have to go through with a fine-tooth comb (270-odd references, oh joy).

Photocopied the Examiners' Report for my MSc and will post home tomorrow morning.

Must go supervise the MWC Grand Final. Shame that our Internet connection is saturated, again.

Woo! A superlative Grand Final! The teams in question rock, totally and completely. I am really impressed. Results to be posted later on tonight.

MWC review of the final and the trophy page are almost done. I'm just going to get comments from the participants, then post it tomorrow morning. WOOHOO! IT'S DONE!

03/11/98: Installed and configured VNC, a tool that lets me run an X desktop basically 'in the background' so that I can logout without having to restart all of my mail applications etc. There is a god! :)

Reading the Electronic Primer on Constraint Solving on Purdue University's web page.

Ye gods, getting information out of Microsoft's website is like getting blood out of a stone.

Our Internet connection basically died, so I can't continue with any of my web-based litreviewing. Argh. I spent a while sorting out specs for the new NT boxes, but I'm about to give up and go do something else.

Finished uploading the MWC trophy page, sent press release, archived my personal copy. All done!

Civil Order asked me if I wanted to join their merry little club, but I think that at the moment I shall respectfully decline. I'm having a lot of fun with Altus Praeses at the moment.

04/11/98: Spent a while helping Mathew get matrix algebra straight in his head. What a task that was... he's using code with a horizontal vector orientation, which means that all of my intuitive matrix algebra doesn't apply any more. And of course, it's totally different to Mirage.

Investigated 3D acceleration under NT, talked to people at ARL and posted a query to USENET.

I got diverted into examining security issues under UNIX while waiting for Geoff to come and talk to Mathew and I about system specs.

Resolved the final issues regarding the configuration of the new research machines. Geoff will talk to Brian tomorrow and they will hopefully be ordered by the end of the week.

Posted that copy of the Examiners' Report. From my door to yours, probably before the weekend.

05/11/98: Nobody's replying to my USENET posts about 3D acceleration under NT. :(

Got a whole bunch of Interloan requests back today stamped "Not Available In NZ" ... blast.

Sent off international requests for the documents that aren't available in NZ.

Lots of fossicking through the bungie.net metaserver logs.

Sent Bungie the details of the people who won the Myth World Cup, shipping info, that sort of thing.

06/11/98: Received a bunch of papers back successfully from interloans. Woo!

Several of the papers are quite interesting, even useful. Particularly Sistare's paper, which introduces the idea of object creation with respect to some 'locus' that determines both creation positions and implicit constraints upon creation.

Obtained a mystical code from the office, which allows me to interloan requests using the Department's fund to cover any expenses (from overseas document requests).

Processed and filed the interloaned papers. I can feel an idea nudging around the back of my head, I'm going to try and write it out properly this afternoon. Right now, it's lunchtime.

I was able to write out a little of the idea in the afternoon, but then the graphics meeting got in the way.

Not much sleep last night, due to fireworks and drunk people.

Lunch at Poppa's Pizza. Mmm, good.

Altus Praeses may be falling apart. Hmm.

07-08/11/98: Didn't do any work over the weekend.

Played Myth quite a bit. Decided to leave Altus Praeses and hook up with Civil Order, since they are a fun group of people.

09/11/98: Another Monday, and a week has flown past. Aie.

Emailed Ioannis Fudos again, I hope that I get a response this time.

More interloan stuff. I interloaned a paper entitled "Solving Geometric Constraint Systems" by Glenn A. Kramer, and they sent me the book of the same title. Ah well, I don't mind. I'll take anything about the topic. :)

Found an online abstract-and-text source for the Computer-Aided Design periodical that is very useful.

Interloaned a few publications from this source.

Setting up Civil mailing lists, etc etc.

Fallout 2 was released just recently, and there are a lot of people talking about it on comp.sys.ibm.pc.games.rpg ... there's been a lot of talk about its prequel (Fallout) and how good it was. It struck me that I might be able to find a second-hand copy somewhere, which would be great. So, the call is out!

10/11/98: Backed up two CDs worth of stuff from off The Onion, in an effort to clean it so that I can upgrade Juliet to OS 8.5.

Finished reading the Kramer text that I received yesterday. A very interesting book, but its work on mechanical linkages isn't as directly related to my research as I'd hoped. Has given me some good ideas (I hope).

I've managed to clear almost everything off the Onion, so it's time to go get the MacOS CD off Tracey. Fun fun fun. I can also return my interloan book.

Loooks like there might be some 'issues' with MacOS 8.5 trashing hard drives. I think I'll upgrade to MacOS 8.1 instead, as it provides HFS+ support anyway.

Ugh. The upgrade procedure found errors on the hard drive, so I'm going to have to run Norton Disk Doctor on it before upgrading. :\

Upgrade complete, HFS+ online. Cluster size reduced to within acceptable tolerances. End transmission.

Found one guy who wants to sell Fallout, however he's since moved to Japan and his copy of Fallout is still in Canada. D'oh!

Woo, found someone who wants to sell Fallout for $12 US (that's including a strategy guide). Huzzah!

11/11/98: Doing lots of work. Um, yeah. Paul, I really am working!

Thinking deeply about the nature of the matching constraints that I want to implement. I think I've finally grasped an idea that will *work*, and work nicely.

Writing out a detailed plan of steps that I need to implement in order to build this system.

Ah, it feels good to have a plan again. Starting tomorrow, I can get back into hands-on coding, at least for a while. I wonder if I've forgotten anything?

A very, very, very nice first look at Half-Life network play, on PCXL. Droooool! Heh heh.

12/11/98: I guess today is Code Day.

Spent most of the morning thinking about exactly what needs coding and the various inter-dependencies between modules.

Implemented TransformList and hooked it back up to the primitive manipulation slider.

Another great look at Half-Life network play. Pant, pant, I want this game. :)

Attended an IRC chat about Fallout 2, quite interesting. It was raining, so I didn't want to leave the lab. :)

13/11/98: Hmm, Friday the 13th.

Did some coding, implementing repeatobjectnode... not finished, lunchtime.

Although I got a bit done after lunch, the graphics meeting and talks with Geoff interrupted me before I was quite finished. Oh well.

Went to see the film Blade last night. It was... a tolerable film. Some very nice set-pieces, and the plot was very good for the first two-thirds of the movie. Then things just got stupid. :\

Shipping from the States for Fallout would have cost about $45 NZ. So, I bought it over the Internet from a local place for $35, inc. shipping.

14-5/11/98: No work. Found out that my PhD annual review is going to be soon, though. Eek.

Got in touch with a friend from a few years ago, who is back in Dunedin after a trip to the US (I believe).

Myth. Lots and lots of Myth.

16/11/98: Finished the coding that I was undertaking on Friday. Now I just have to test the repeatobjectnode and check that it updates correctly. It may be a right pig for object matching routines.

Blast. The TransformList code that I wrote on (Thursday?) is crashing.

Uh-oh, memoryexplosion spiral. Ugh, I hate printf debugging.

Fixed the memory explosion, but I seem to be accessing memory at 0x00000018 which is a system register, if I'm not mistaken. Why the hell is it doing that? Sigh.

Fixed that problem, it was a rather subtle bug, but it's gone now.

Received my copy of Fallout in the mail this morning! Omigod, that's fast! Woop!

17/11/98: Trying to tutor the fish-film students on how to use Unix, C++, Katachi, and the Fish Film all at once. It's brutal.

Fixed an insidious transformation-order logic bug. Repeatobjectnodes appear to be fully functional now.

Trying to track down a problem with inout pointdata and spurious CSG polygons inside MINUS volumes that result from an addition (?).

I spent the whole morning playing Fallout.

18/11/98: Well, it's not the inout pointdata that's causing the spurious polygons to be created. I have no idea what it is, but I'll keep trying.

Found and fixed the problem. Was to do with the ham-handed handling of the ghost polygons.

Oooohhhh. Half-Life looks very purty.

19/11/98: Well, today I have to write my annual report on my PhD.

Done! Mmm. That wasn't too hard. Now to deliver it to Anthony.

Read and processed some more papers that arrived via interloan.

Trouble scheduling games in a Myth tournament that I'm playing in.

20/11/98: Final timetable for PhD meetings has been set. Mine is on the 1st Dec, 11:00.

Apparently my PhD registration form is only just being processed now. Lousy bureaucrats.

Deep thinking about DMDs and integration of the skitter list.

Oh man, I wasted the best part of 90 minutes reading news on the Web. Sigh.

21-22/11/98: No work, weekend.

Shopping. Bought myself a nice gel-filled wrist rest. Mmmm.

Myth. Busting lamers. No games yet. :(
Well, some games, but the people didn't show up for our scheduled tournament game. (!!!). For that, they die.

Pre-ordered Half-Life. Mmmm, yummy.

23/11/98: Creating the SkitterList, and hooking it up to the object selection and transformation code. Now I just have to write the rendering code for the Skitters, and it'll be ready for testing.

The rendering code seems to be working, it's all nice. After some grappling with code that should have worked, I rewrote it, and it works fine now. Shrug.

Received a nice little CD in the mail which I can't talk about due to the NDA that I signed. Just let me say... woohoo!

Met up with Caron Lamb, who I haven't seen for about 18 months. She's been on an exchange program in the US, and it's nice to catch up with old friends.

24/11/98: Fixed the object selection code; problems were due to NULL parent nodes, pointers weren't being set correctly on creation of the repeatobjectnodes.

Thinking about DMDs and means for selection.

Coding up the basis of the DMD selection / manipulation architecture for the interactive editor.

The selection architecture is mostly in place, but I just realised that I have to make a rather fundamental change to it. Tomorrow, I think.

Spent an enjoyable hour analysing the fourth-year marks which were released today.

25/11/98: Woo, axes all working. Now I just have to figure out what to do in the case of coincident axes.

Prototype DMD construction, coding in order to allow such.

OGR gave Half-Life 9.7 / 10 ... mmm. Soon, my pretty.

26/11/98: Designed a translation DMD, hooking it up to the interaction stuff now.

Superb! I can now interactively move objects using the DMDs, in 3D space. The interactive-editor side of things is really coming together now.

Got axis-aligned translation working too.

Translation and scaling DMDs are finished. Tomorrow: rotation!

Investigated the possibility of joining the Golgotha Forever team. They mostly seem to be clueless Windows loons, and there's maybe two or three switched-on people on the team. Sigh.

Gamezone reports that Half-Life has been delayed in Australia and will be hitting NZ shores tomorrow.

27/11/98: Building a DMD for rotation in three dimensions. It's visually very busy, but I'll see how well it works once it's finished.

Axis-aligned rotations are working perfectly, I'll work on free rotations after lunch.

Free rotation is working! The rotation widget is virtually complete now; the only thing missing is a set of white 'guide lines' to indicate the current direction of rotation.

Half-Life has arrived at the warehouse in Auckland and should be shipped to me today.

28-29/11/98: Weekend, no work!

LAN at Sandy's place, it is a total blast! Half-Life rules!

Trying to play Myth, but our Internet connection died totally.

30/11/98: Preparing for my annual PhD review tomorrow. Looking back through my worklog, I can see that I haven't spoken to Richard O'Keefe about my PhD since the third of September. Not exactly stellar, oh well.

Pricing computer systems for my new research machine. I can't believe that it still hasn't been ordered. This is abysmal.

After talking to Geoff and Allan this afternoon, we finally resolved to just order the original systems from Dell, no educational pricing and damn the consequences. Maybe the order will actually go through today!

Minor Internet outage this morning.

Downloaded and played the demo for Thief, it's quite fun. So many cool games, so little time!

1/12/98: PhD review meeting. Off I go into the breach once more!

Well, that was a bureaucratic waste of time. As if I expected anything else...

The Dell machines have finally been ordered. Woo woo. Mathew and I put together pricing for Visual C++ and a Microsoft Developer Network subscription as well.

Nothing important. Spent a while lambasting fools and incompetents on various Myth discussion boards.

2/12/98: Trying to use lousy outdated graph-layout tools. I don't want to install some crummy SunOS compatibility tools in order to get them to work, but I might have to.

I found a better graph-layout tool, with a proper API and all the features I want, but the FTP server that it resides on is unbearably slow. Argh!

Downloaded daVinci, only to find that its API insists on starting up a complete application and drawing all the graphics itself. NOT good. I guess I have to look for other algorithms.

Downloaded a DAG graph viewer, I also have a few references on graph drawing algorithms that I can look up tomorrow at the library.

Slept in bigtime this morning.

Thinking about running a tournament when Myth II arrives.

3/12/98: Argh, it seems that Allan has not in fact ordered our Dell machines, due to a communications difficulty.

Going through the documentation and supporting papers for TclDG and DynaDAG.

I don't think any of these dynamic DAG drawing papers are going to be useful for my PhD. The nature of the objectgraph doesn't lend itself well to any of the standard solutions.

Library trouble, missing volumes of journals. I guess I didn't really need that paper anyway.

Ugh. My home computer is hosed and won't boot successfully... off anything.

Scheming about creating a possible Myth II tournament in association with a guy called Angelus.


Signed up for the GTK-ICQ development project.

4/12/98: Dell are being bloody useless and have refused to ship our specified configuration, as they state the drivers are not compatible. But we already know that they are compatible!

Much hunting around on the web looking for alternate computer and video card suppliers. It's very aggravating.

More plotting and scheming about our Myth II tournament.

5-6/12/98: Weekend.

Absolutely glorious day today. It feels good to be alive. :)

Got an offer from Shan at Tales of the Myrkridia to join their staff on the basis of some layout comments I had. I declined.

Ho ho, the staff of the Tales seem to be imploding. Alas, poor Atleus.

Colluding with a friend to set up the Myth Done Quick website.

7/12/98: Found a URL to AT&T's research division, and their graph visualisation software. ::licks lips::

Downloaded graphviz 1.3 source code, time to compile.

Much makefile hacking, X library searching, doing the #define shuffle! But it all compiles and installs. Now I just have to see if it's worth using.

Dell stuff, trying to find an alternative video card that will work with NT.

I can't find any sites that have proof that the TNT-based cards can do 3D in a window. I know they do, but I can't find proof for Mat. Argh!

Posted presents.

8/12/98: Checking out many, many reviews of the Riva TNT-based boards that we're looking at purchasing.

Arcane LD_LIBRARY_PATH woes with the dynamic linker mean that I can't run graphviz and netscape from the same setup. Had to write a glue script to launch Netscape instead.

Downloaded lesstif 0.87 and installed it in my PhD directory, in order to run an ancient Motif-using application called dflo. It's a graph-viewing application that does flowcharts, and it might have some principles that I can apply to my DAG layout.

I have dflo up and running. Its graph-layout algorithms appear to be somewhat sub-optimal, so that's not necessarily the best avenue to explore. Damn.

MSVC++ 6.0 arrived. Unfortunately we don't have the machines for it yet, and are unlikely to before Christmas.

Some work on changing the way that new objectnodes are created, but now my program mysteriously crashes. And when I try to run the debugger on it, that crashes the debugger. Argh.

Extensive beta testing of Myth Irradiated's new website layout.

9/12/98: Reading alt.comp.periphs.videocards.nvidia and looking for info that might affect our purchase decisions.

We decided to go with the Canopus Spectra 2500 cards at least initially, despite some worries with their image quality when running at high resolutions (like 1600x1200 high). Going to order two initially, with the option of another one for Mathew later on.

Fixed the crash bug, only took about a minute. Woo.

Allan has ordered the Dell machines. Here's hoping that they get here before Christmas.

Fixed a problem with add_repeat_around and add_wrapper_around that appears to have been present in my code for a very long time. Phew! That's a relief.

Implemented the ParentTracker and removed a whole passel of (now) useless code.

Lots of thinking about how I can plug / play the GraphLayout subclasses and what to do about that.

Hmm, I actually reported a mass email incident to abuse@aol.com and they answered! Will wonders never cease. :)


10/12/98: We ordered the Diamond Viper 550 cards in the end, from BCL (the Department's usual parts supplier).

Working on implementing HorizGraphLayout and HorizLayoutNode algorithms. My modeller has now passed 20,000 lines of code.

Cool ideas for a Myth metaserver log-parsing RPC-cluster/CGI-interface thing.

My computer is back up again; on a hunch, I ripped out the L2 cache card and it now no longer crashes during the boot process. Oh, joyous rapture! It is a bit slower (20% or so) now, but I still spent several hours last night playing Half-Life (from 12 till 2...).

11/12/98: More work on the graph layout engine.

I think the graph layout and structure engine is complete. Now I will need to hook it up to some kind of drawing structure, probably text-based.

Heh, the Diamond cards have arrived today. Now we just have to wait about a fortnight so that we have computers to put them in. :(

I've compiled a lot of work on the layout engine, now I'm testing it. Some arcane error is causing it to crash inside the compiler internals. Argh!

Fixed, it was a minor stupidity.

Had lunch with Sandy's parents, who are down from Wellington for his graduation.

Mmm, barbecued lamingtons.

12-3/12/98: Weekend!

TONS of scheming about our new Myth II tournament.

D'oh! I was in the middle of a conference about the rules for the tournament and our University's gateway machine died. That sucks.

The network connection is back up again, and our nefarious plans continue.

Wrote draft rules for the tournament. Working title: "Trial by Combat".

Drafted HTML layout for the web page. If Jeff's image skills are up to it, this tournament will look superb. :)

14/12/98: Fixed a stupid, stupid crash bug in the recently written Layout code.

The Layout code that I wrote before the weekend appears to be solid. Time to extend it and hook it into a rudimentary graph view.

Lots of Tcl code compartmentalisation and decoupling. Fun, fun, fun.

Show-stopper bug in the Tcl error handling. I have *no* idea what's going wrong, but my program just hangs whenever I get an error, instead of going into the Tcl error handler.

I managed to get rid of the error in question, but I still have no error handling. :(

Scrollbars and canvas are now added and working. I just have to write the actual node drawing engine and we will be away laughing. Mwahaha etc.

Trial by Combat stuff, fun things.

15/12/98: Hooking up the canvas that I created yesterday to all the layout drawing routine. Tcl -> C interface code is nasty.

Designing the graph layout. Made me realise that some of the graph operations need more failsafes in order to ensure that they don't create invalid graph layouts.

More Trial By Combat stuff.

16/12/98: Tcl drawing code to interface with the layout engine. The reverse process (selection and manipulation) is tougher than I thought and will require a little reworking of the CSGgraph due to Tcl's limitations.

Decided on names for the new research machines; the lab is going to move to Shakespearean characters. I have reserved the name Iago for my new machine.

Frantically trying to get my modeller back into a working state before my PhD meeting with Richard and Geoff at 2pm. Of course, it's being recalcitrant, and it's not pleasant.

Another bloody stupid bug. Sometimes I really am a moron.

Hooked up the selection mechanism into a colouring for the layout engine.

Had a very pleasant lunch at Rob's house and discussed future directions for roleplaying in 1999.

17/12/98: Added manipulation buttons to the TclGraphView, now linking them up to the CSGgraph's C++ routines for manipulation.

Spent most (if not all) of the day pursuing and finally catching a rather nasty oversight in my CSGgraph manipulation code. The manipulation code isn't complete yet, and there are several more issues that need fixing, but it's getting much better.

More work on the TBC logo, with Trinity.

Wrote some CGI scripts and email parsers for the TBC registration phase.

18/12/98: Modified the GraphLayout's structure somewhat, to keep track of parent nodes more easily and track ghost links correctly through link operations.

Hunted out a few more inconsistencies in the CSGgraph building routines.

I think the CSGgraph linking routines are all self-consistent now. I just have to add an interface for adding primitives... and add deletion...

Hooray, now I can delete stuff. How constructive. Only trouble is, if you delete everything in the scene, there's no way to add anything new. Hmmm.

Fixed that annoying 'no-more-toys' problem. Now the only thing that needs adding is the ability to link in primitives... and some more debugging, too.

Learnt today that the Dell machines were shipped from Auckland yesterday, and should arrive here on either Monday or Tuesday. w00!

Saw some very nice Quake III screenshots.

Convinced Carch to join my cunning scheme.

More story writing for the TBC.

19-20/12/98: Weekend.

Apparently, Myth II pre-orders have been shipped today. I hope I get mine soon. :)

Website design. Lots of HTML hacking and Photoshop fun.

Had fun playing Myth Done Quick with Ruiner and a few friends.

Trinity has come back with the images for the TBC website, so I am stitching them into my HTML code.

The prototype TBC website is up on mythii.com if you want to look at it. Please don't publicise the URL, it isn't ready for public consumption quite yet.

Ah, what the heck. The TBC is open and accepting entries.

21/12/98: Research machines haven't arrived this morning like we thought they would. Damn.

Found and fixed a problem with octree pointers not chaining up the graph correctly. This has let me get past a crash bug, and start debugging the real underlying problem that's causing anomalous selected patches on objects.

Unfortunately this has revealed that the problem exists in the TerminalTracker, code that I thought was final and bulletproof. I guess I have somehow designed a silver bullet that can kill it anyway. Argh. Oh well, lunchtime.

Diverted into NT machine administration concerns, didn't get around to debugging anything quite yet. It's a very complex issue and it's making my head hurt.

Once I actually understood the issue and made the required change, it all worked first time. Ah, that feels good. A shame that I didn't predict the situation occurring in the first place, though... it was a natural extension of my modeller and I really should have anticipated it.

Added an add-new-primitives button to my modeller. Easy! Seems to have trouble with axis-aligned surfaces, though, and I will have to fix that. Also managed to find a crash bug related to deleting objects.

Fixed the crash bug just as the clock struck five. Woohoo!

Trial By Combat registration proceeds apace.

22/12/98: Modeller passed 22,000 lines of code today. The graph view seems to be pretty much finished.

Struck an unusual problem whereby segments of the polygonization are hanging around after they should be disappearing. Time to write some in-depth debugging routines.

Woohoo, it's fixed now. Was a problem with the recursive propagation of CHANGED flags inside create_csg_octree, through multiple levels of octree wrappers.

Lint removal and code tidyup, cut the codesize down by 1,000 lines through removing commented-out debugging statements. Fixed a few nasty global hacks that are now outmoded due to better design. Finalised codebase for the port to NT (assuming the machines eventually get here).

Trial By Combat stuff, trying to sort out dedicated tournament rooms on bungie.net. A big worry is that the international pre-orders weren't shipped early for Myth II, so I may not actually GET Myth II before the tournament starts, which would make running it rather hard. Ack!


Travelled home for the Christmas weekend.


After a very pleasant Christmas, returned back to find a strange courier parcel by my door. Opening it, I find a T-shirt with the Half-Life logo on it. No other information, no sender's address. Bizarre. But so very cool!

Catching up on Myth-related stuff. Worryingly, there are a lot of people whom I respect ragging on the Myth II netmaps. Apparently they aren't very good. A bit disturbing, considering that I have committed myself to organising a tournament using them.

Downloaded demos for Myth II and a Civilization-like game called Alpha Centauri.

29/12/98: Machines didn't arrive last week like they were meant to. In fact, they're still not here, nearly two weeks after they were shipped from Auckland. So WTF am I going to do now? Sigh. At least I have a few interloans to go through.

Decided, after talking with Kevin, that it might be a good idea to try for a paper in SIGGRAPH 99, just a short one talking about my cell-based CSG engine.

Alpha Centauri's pretty cool.

Decided to push back the TBC start date by a week, due to Myth II's late distribution cycle.

Wrote a long commentary on the Myth II demo.

Played a lot of the Myth II demo, it's a lot of fun.

30/12/98: Atlas is being taken down for an upgrade today.

Thinking about publishing my work. I chatted to Geoff and he recommended that I target a technical sketch in SIGGRAPH 99. One page, 500 or so words plus some figures. Submission date in April some time.

Big Myth II problems for Bungie. They've had to do a complete product recall due to a bug in the uninstaller that could erase your hard drive. Whoops.

Played some Myth, won some, lost some.

31/12/98: Atlas' upgrade has been unable to be completed, due to firmware version incompatibilities. It'll be done some other day.

Started a large rewrite of most of the triangle-splitting and CSG code.

Absolutely fascinating articles on nanotechnology and self-replicating machines here and here. Oh dear, is it lunchtime already? Ugh.

1/1/99: Coding frenzy. This is making my brain hurt.

Reworked and rewrote about 4000 lines of code. Time to compile and test it now.

Happy New Year!

Lots of bungie.net adminning.

2-3/1/99: Weekend.

Watched Morag and Murray play Riven for a long time. It's a very silly game. :)

Trying to select good games for the first round of the Trial by Combat, even though I don't have Myth II yet... ugh.

Played Myth. Quite a bit of Myth.

University Internet gateway went down on Sunday. Fortunately it was a beautiful sunny day! Yay!

4/1/99: Found and fixed two rather tricky bugs in my triangle-splitting code. It's so hot today (I would estimate around 27-28 degrees in the main lab) that I've basically been unable to do much more, and put off working until the late evening.

The official high for Dunedin today was 30 degrees. Yow.

Trying to organise stuff related to my Myth tournament. Also slept in _very_ late today, which didn't help. :(

7/1/99: I've installed Windows NT on my machine and applied all of the relevant Service Packs. Spent most of Wednesday working my way through the MFC tutorials (the very basic ones), and now I think I know enough about the basic setup of an MFC application to start porting my application across.

Got an OpenGL test application off Mathew and it runs fine, 3D-accelerated on my machine. The Riva TNT card is just working transparently and seamlessly, it's absolutely marvellous. I can't wait to see what it looks like when I hook up my modeller to it.

Everything is nearly perfect on my machine, apart from the fact that I don't have a nice interface to the Linux machines. I'm going to investigate X-windows extensions for Win32.

The ITS aren't going to enter the machines into the DNS until early next week, apparently. This means that I can't send email from my machine until this happens. Blast.

Played Half-Life on the new machines for a few hours. It's very pretty in 1024x769 with OpenGL acceleration and a beautiful framerate.

8/1/99: Ported Mirage to NT, relatively easy. All the code went across smooth as a dream, it's just stupid VC++ things like pre-compiled headers that consumed the time.

Spent quite some time reading nasty, nasty things about Todd Porter and ION Storm. Hmm. I'll reserve judgement.

Discovered that my Myth II pre-order hasn't even left Bungie Software yet, and will be another two to three weeks. That's rather frustrating; see the Codex / b.net forum for more detailed comments.

9-10/1/99: Weekend.

Wrote some automatic email parsing scripts for the Trial by Combat.

11/1/99: Fixed a really galling namespace problem with the Mirage code in VC++.

My GL-CSG code is up and compiling under NT, linking versus Mirage and everything. I've eliminated all the memory leaks that are tied to Mirage's global constructors... next up: create a WGLView class and link the modeller up to it.

Hmm. Maybe not. I've hooked up the Modeller class and it is causing memory leaks _somewhere_ ... time to find out where! Oh, MS Debugger, how we love you.

Tried to find an MP3 encoder for WinNT, didn't.

12/1/99: Chasing memory leaks that I couldn't find under Linux easily, but which are absolutely crucial to fix under Windows.

It is so hot today that I just cannot concentrate. Pfaugh!

Well, maybe I can if I drink enough Mountain Dew. I think I've found and fixed all of the memory leaks in the modeller. Now I can begin the GL-view porting process.

Started converting my CDs to MP3s so that I can play them easily off the hard drive. It takes a long time, but that's what we have the Mac in the corner for!

Went and bought tickets to see the movie 'Enemy of the State' tonight.

13/1/99: A friend from the Statistics department is thinking about purchasing VC++ in order to do some application development, and I showed him my (meagre) knowledge of its capabilities.

I think I've fixed the final memory allocation problems in Mirage. At last.

Started hooking up the GL windows.

Oh god. It was all working fine, then suddenly it all stopped for no apparent reason. It's not even getting to my initialisation code before my application dies with an Access Violation of type 0xC0000005 in NV4OGLNT.DLL (the Riva TNT drivers). Argh argh argh argh.

Looks like the problem may have been that I wasn't releasing the rendering context back to the OS, and this was causing a bug to show up in the TNT OpenGL drivers. It doesn't seem to be coming back.

More complicated and hard-to-find bugs. But at least I am getting a picture in a window, even if it doesn't update.

Fixed all the crash bugs I can find. Now I just have to work out why the picture isn't updating when I click on something to select it.

Hrm. Looks like a tricky one. Time to go home, I think, and leave it for tomorrow.

MP3s are so much nicer to play. I have a 200MB database of MP3s collected off the Graphics Lab CDs, and I basically have background music continuously without having to change CDs. :)

Enemy of the State was a very enjoyable film, excellent.

14/1/99: Fixed several OpenGL problems and memory leaking. I can't seem to get GL_COLOR_MATERIAL working, though. One intermittent 16-byte memory leak remains. :(

The port is (for all intents and purposes) complete and is at the same level of functionality as the UNIX version was when I started. But now I have 3D-acceleration working.

More Trial by Combat stuff. God, there are some stupid people in this world.

Took a picture of Nick Meek for the departmental web page.

14/1/99: Uh, well, maybe the port isn't quite complete yet. I haven't got the graph-view working yet. Oops.

Hooked up all of the view-manipulation operations (rotate, shift, zoom) to the mouse events.

Finalised the MDI interface and removed all globals that were implicitly linked to Modeller. There are no memory leaks associated with my code now, as far as I can tell... creation of 6 modellers, manipulation, deletion all work with no memory leaks at all. Yay!

Changed the MDI child window so that the default application frames are 3-way split frames. This gives me a place to put the graph view and transformation view once I create them.

VC++ is being moronic in its syntax parsing and failing on a simple constructor. I have no idea why. It's very aggravating. I don't know how to solve it, so I'm just going to leave it until after the weekend, probably.

There are now 464 entrants in the TBC. It approaches completion... I have to organise the hosts today, but that shouldn't be too much of a problem. The next thing will be to create a program for scheduling people into brackets, I can do that on Saturday.

16-18/1/99: No work.

Ay caramba. Monday has basically been an extension of the weekend, as I run around trying to get the registration for the TBC sorted out. People have been having a lot of trouble with my automatic registration scheme, so I've had to spend all of Monday rewriting the parsing software to make it more flexible. It's now 5pm and I haven't gotten any work done at all.

19/1/99: No work yet this morning. Been too busy completing course approval and paying fees.

Ugh. A hideous email-cascade accident resulted in me having 9,000 email messages from my automatic parsing software when I came in this morning. Damn.

Trying to find enough hosts for the Trial by Combat, and get them organised.

20/1/99: This VC++ parsing error is just being totally unreasonably. Grrarrrgh!

The parse error in fact turned out to be that in the constructor of my class, one of the parameters was CGraphview * instead of CGraphView *. And Visual C++ died with the error "unexpected token class Mirage::WObjectGraphView(" instead. That is the least intuitive error message yet, I have to say.

Working on hooking up the GraphView to my modeller's code.

A little work on the TBC; trying to find alternative sources for Myth II.

Myth II arrived today, woohoo. That takes several large, heavy weights off my mind.

Once again, someone has already got the login 'butcher'. Oh well, I guess I can live with 'butcher2' once more. :\

21-23/1/99: Finished up the GraphView and linked it up to the selection code.

Spent an awful lot of time working on the Trial by Combat, neglecting my work somewhat on Thursday and Friday. The tournament was all in order by Saturday evening.

24/1/99: No work.

Got up at 5am in order to be online at about 10:30am CST. Spent about an hour and a half panicking over the fact that there were no tournament rooms available, and that half my room organisers weren't there. But then my organisational instincts took over, and the tournament really started getting into full swing. Despite absenteeism on the part of the room organisers, the hosts (bigtime!), and the players, the TBC went very well, I thought. About 3/4 of the total number of matches were played (some brackets being combined into others), and a lot of people had a lot of fun.

25/1/99: Found and fixed the last memory leak in my code!! **dances**

Trying to work out how I can get a drop-down menu in my toolbar. I'm sure the mystic code TBSTYLE_DROPDOWN has something to do with it... sigh.

Well, the TBC results for Round One have all landed in my mailbox. I'll process them after work today.

Testing Myth II v1.2 with the admins.

Went to see the film 'Elizabeth' last night. It was real nice.

26/1/99: Nothing yet.

Spent the entire day (it's now 4pm) processing films from TBC Round 1. I wish the hosts would follow my instructions. Even when I don't tell them what I actually want them to do. Oh well.

Continued trying to sort out and fix problems with TBC Round 1 results. Placed a results page up on the TBC website.

27/1/99: Finished hooking up the primitive menu to the UI code.

Fixed a nasty bug related to deleting objects from the modeller.

Had a good discussion with Geoff and Richard about targeting of my technical sketch in SIGGRAPH. I'm going to start writing tomorrow.

Discussion on the Civil Order mailing list about how much we play / don't play.

More TBC results tidying.

Amazing, I finally have all the Round 1 results collated. Now I just need to put them into .zip files.

28/1/99: Trying to download NT emacs and a LaTeX package for NT. No joy, because the University's Internet connection is totally saturated. Argh.

Helped the fish-film people track down a bug with different versions of the motion-path code, hardcoded constant array sizes and memory corruption (I'm sure you can guess how these fit together, Puzza).

Spent the morning organising Round 2 of the TBC.

29-30/1/99: No work over the weekend.

Played Myth. A lot of Myth. Round 2 of the TBC went reasonably well.

1/2/99: Ugh. Installed new display drivers for my Viper V550 graphics card and all OpenGL acceleration blew up. 2D display went bonkers as well, and I had to revert to the old drivers, wasting a lot of time.

Installed NT-Emacs, a LaTeX environment and gnuserv, which lets me write nice TeX documents on my machine. Took some fiddling though.

Wasted some time web surfing. The Codex b.net forum is insane at the moment.

2/2/99: Writing the draft for my technical sketch.

Draft text complete, spent the afternoon drawing a figure. A very complicated figure. With lots of lines and points and things.

Network outage last night which wasn't resolved until about 9:30am, so I watched people playing Bomberman 64 on our Nintendo.

Finished compiling and collating TBC results for Round 2. www.mythii.com's connection is totally saturated though, so it took a while to upload them.

I may have to flag away trying to keep up with the volume of information on the Codex bungie.net forum. It's insane.

3/2/99: Finished the figures for my sketch.

Spent most of the afternoon setting up iago as an FTP and X server so that I can work from it more easily.

TBC organisation for Round 3. Games changed quite a few times.

4/2/99: Proofreading and making changes to the text of my sketch.

Much arguing with our system programmers over whether or not we should purchase X-server software for our NT machines.

Talked with Bellendaine about an idea that I had for a Myth II map.

Played a lot of "The Legend of Zelda" on the Nintendo this afternoon; the games were going to go back to the video store at 2pm and I wanted to evaluate them before they did. Oh well. :)

5/2/99: Argh! I've spent almost the entire morning trying to get Visual C++ to work again on my machine. DLL version conflicts in the ODBC server interface it seems, and I had to reinstall NT4SP4, VC6 and VC6SP1 before it would work again. Windows NT can take a flying leap as far as I'm concerned right now.

With the return of VC++, I'm working on finalising the triangle-adjacency code that I sketched out before starting work on my technical-sketch.

I wrote and posted a Myth mapmaking rant on the Townhall's third-party forum.

6-7/2/99: No work this weekend.

TBC stuff, and more general Myth II stuff as well. TBC Round 3 went well, and there will be a break of two weeks until the next round.

8/2/99: Changing the way that split triangles are kept / discarded from the inefficient, numerically unstable ray-casting approach to a more complex adjacency-maintenance scheme. Lots of technically challenging coding, and it's going slowly.

Trying to sort out timeslots and games for next TBC round. Today is also "Sunday, Bloody Sunday", when the b.net Admins get together to play Myth II, so I'm planning to take a break from coding this afternoon.

Played a bit of Myth II this afternoon.

9/2/99: Finishing up the adjacency coding. Lots of case enumeration for cell / triangle topologies. Also debugging some rather complex code, very glad for a source-level debugger.

Ran out of room in my PhD workbook. D'oh! I need a break anyway, so I'm off to town to buy a new one. :)

Got myself involved in the MLM (Major League Myth) tournament reviewing films.

10/2/99: Hunting, tracking and killing bugs in the triangle-adjacency code.

TBC games for Round Four finalised.

The movie 'Ronin' is worth seeing IMHO, especially if you've ever had fun imagining a contemporary shadowrun.

11/2/99: Oh boy, this code is getting more and more complex by the week. Anyway, I've finally tracked down all the logic errors in it, I think. Time to start hooking it up to code that actually does stuff, now that I'm satisfied the graph maintenance is working.

Much ado about very little on many Myth forums. I seem to stir up fools and buffoons wherever I go... or maybe that's just my world view manifesting itself. Hmm.

12/2/99: Lots of work on adjacency code to replace the ray-casting. The KEEP/DISCARD graph traverses seem to be working, but I get the feeling I need to do more checking.

Played some Myth.

13-4/2/99: No work.

Lots of Myth. Played some with Civil Order, a bit of random stuff as well. Helped admins test Myth II 1.2 final patch candidate before public release. Map testing with some friends too.

Lovely afternoon -> went to read a book under a tree in the gardens.

15/2/99: Trying to debug a very convoluted case in the K/D graphtraversal code.

All that freaking debugging, and the problem was that I had cut and pasted some code, and replaced 1 with 2 in every case EXCEPT ONE. For want of a character, the statement failed. For want of a statement, the assertion failed. For want of an assertion, the adjacency search failed. For want of an adjacency search, the triangle-CSG routine failed. For want of a triangle-CSG routine, the CSGTerminal polygonizer failed. For want of a CSGTerminal polygonizer, the TerminalTracker failed. For want of a TerminalTracker, the polygonization update failed. For want of a polygonization, the OpenGL display list failed. For want of a display list, the update routine failed. For want of an update routine, the entire goddamn application went belly-up. Sigh.

The adjacency graph appears to be as stable as can be expected. On to the next part, which is the creation of a transformation list window.

A friend asked me why I have to run in 1600x1200. So I showed him.

Testing betalands maps, had a play around with Red Sands fc01. Bellendaine is trying for a different game mechanic with his Stampede! mesh, and IMHO it's failing dismally.

16/2/99: Created the framework for the TransformationView windows in my modeller.

The TransView is up and working, allowing me to select individual transformations, and detecting double-clicks (but not yet popping up dialog boxes). To do: adding new transformations, deleting existing transformations, and reordering existing transformations.

Finding bugs in Myth II v1.2.

It is very, very hot this afternoon in the graphics lab, but more importantly it's humid. I am having a lot of trouble concentrating.

17/2/99: Added the ability to select transformations, move them around, and delete them. Next: adding transformations.

You can now add transformations to the transview window. This brings the modeller up to something approaching useful functionality, and I can now start working on optimization and preparation of the SIGGRAPH 99 sketch.

Time to sit down and prepare a position paper on the graphics lab's current direction with regards to computer systems and OSes, and possible future directions.

Melanie is back at work after being very sick over the weekend. I hope the entire Graphics Lab doesn't come down with the same thing...

Excerpt from a conversation I had with the ITS helpdesk:

> Can I get mail redirected from my student account
>(butch980@student.otago.ac.nz) to my departmental email account
>(cbutcher@atlas.otago.ac.nz), please?

Hi Chris,

Are you a staff member Chris?


I was so tempted to reply "Would I have a student account if I was, dumbass?" but managed to stop at the last second. Remember, Chris, don't insult the menials and they won't get all surly on you.

Another very hot day this afternoon in the graphics lab. All I can do is flake out, eat ice-cream and drink bad Fanta imitation soda from the Duck. It's a hard life.

18/2/99: Spent the entire morning preparing a position paper describing where I think the graphics lab should go in terms of equipment and OS purchases.

Most of the afternoon also went towards aforementioned position paper.

Lambasted someone on the Myth Codex b.net forum who signed himself "Polaris, PhD (Information Technology)"... and there was much snickering.

19/2/99: Sat down to sort out my priorities for my PhD at the moment. Next up is optimization and profiling of my code, so that I can get impressive figures for my SIGGRAPH sketch.

Hmm. It seems that one needs to turn on the ability to profile code individually for each user, under NT. Now I have to kill everything and log in as Administrator in order to try and figure out which combination of permissions I need. Sigh.

Someone seems to have started a "Do We Like Butcher" poll on the Codex / b.net forum. How bizarre.

20-21/2/99: No work.

TBC stuff and planning for possible MWC '99.

22/2/99: Still can't figure out how to profile without logging in as Administrator. Argh!

Reviewed some TBC films. Took basically all morning. :(

23/2/99: Registered our copy of VC++ with Microsoft by mail; hopefully they will let us ring their tech-support now.

Profiling my code (as Administrator)... a lot of time being spent in re-polygonizing the primitive solids, before the CSG splitting is done.

Sorting out versions of third-party maps for Trial by Combat

24/2/99: I had somewhat of an epiphany this morning and realised how I could alter my code significantly in order to remove the reliance on complete primitive re-polygonization. It will require a _lot_ of work though, and I'm not sure if I want to do it...

Went to Clubs and Societies day today, wandered around and investigated fun things to do.

Planning for MWC99.

25/2/99: Time to ring Microsoft tech support and see what we can see.

The people at MS tech support don't have any incidents of this nature in their knowledge-base. The guy I spoke to didn't have the problem profiling on his machine there, but he's going to run some tests on it and see if he can reproduce it. I'm going to try a workaround or two of my own in the meantime.

By un-installing VC++ and reinstalling it as the Chris user, now Chris can profile code but nobody else can. So that problem isn't too bad now, but it's still an issue that needs resolving. I'll see what the MS Technician says when he gets in touch with me.

More fleshing out of the ideas that I had yesterday.

Darlene tells me that a package has arrived at ITS for me, from Bungie Software. So over I go to get it.

I seem to have been subscribed by email to the Myth Codex bungie.net forum, with the result that I had about 90 email messages this morning, all filtered off into a little side-folder. :)

Well, I received a Myth II T-shirt in the post. Now that's weird. But I'm not complaining.

Myth II v1.2 has been released.

26/2/99: Continued to sort out exactly how the underlying architecture of my program is going to change with the application of this new idea. This is something I want to have completely sorted out in my head before I proceed, so it's important that I get it right first time.

Organising for the Trial by Combat. Also sent out a press-release asking for people to help me work on ideas for the Myth World Cup '99, which I've started designing.

27-8/2/99: No work.

Saturday: did a lot of organising for MWC99, trying to sort out just how this thing is going to be put together. On Sunday I went on the Tramping Club's annual start-of-the-year event. We walked up Mount Cargill and had a barbeque to get to know people. It was a lot of fun.

1/3/99: FINALLY got an answer back from Microsoft Tech Support. Apparently the technician that I talked to on Thursday found the problem that day, and emailed me the fix. But he misspelt my email address, the first one bounced, and when he corrected the address apparently that email message never reached me. Kooky. After about 45 minutes of stuffing around by phone, I managed to sort out that I needed to send them a message, to flush the queue of outgoing mail, so that their message would get sent to me. Oh man, now that is screwed up.

I basically didn't get much accomplished at work today.

Sorting out the results for the TBC round that happened on Sunday in my absence. Alas, it seems to have been somewhat of a disaster. One of the four games basically fell apart and everyone left in disgust. Argh.

Web design stuff for MWC '99. Also tournament organization stuff.

It is cold, and wet, and I got rained on going to lunch. Ah-choo.

2/3/99: Proofread Steven's paper for the International Conference of Computer Vision '99. If it gets accepted, he's off to the Greek Isles for a conference. :)

I think that I have finally managed to sort out nicely all of the changes that I want to make to my PhD program's architecture. Spent the morning thinking about it, and the afternoon writing the ideas up in detail so that I can begin implementation tomorrow. I hope I got it right first time.

Decided to do a complete backup of my entire PhD directory.

More MWC stuff, email sending frenzy.

Entered Bungie's Seven Phoenix Rising tournament.

3/3/99: Yesterday evening I went to the Tramping Club's premeet for their upcoming Paradise trip this weekend. I've allocated today to buying gear and wearing it in (going to go for a walk up Mount Cargill). So not much work.

MWC planning.

Wore in my new boots; they work really well!

4/3/99: Final thinking and refining of the design. Can't believe how long this has taken, but it's a big change to the structure that I've been developing for the last six months.

Went uptown and bought a bedroll to go with the sleeping bag that I managed to borrow from Morag's parents. Now I've got everything I need for the trip to Paradise this weekend.

5/3/99: Talked to Geoff about the ideas that I have for grid-based triangle clipping. He seems to think that the problem has been solved before, by Fujimoto he recalls. So I'm going through Fujimoto's papers looking for answers.

Got a reply from Terry Cole re: X-Win Pro and we should be up and running sometime later today (fingers crossed).

Final organising for the TBC round this weekend.

Went to the meeting for the Paradise trip this weekend, and met Dean Hall there! Apparently he is an experienced tramper and is looking to have some fun in Dunedin as well. He also reminded me that I should ring James some time. :)

6-7/3/99: No work this weekend, away tramping.

Paradise trip was great fun! Really glad that I went.

8/3/99: I really have to move into high gear on my SIGGRAPH sketch now. I have a LOT of work to do in about 40 days.

Spent the morning sorting out gear and tidying up after the trip over the weekend.

Checking results from the TBC semi-finals that were played this weekend.

9/3/99: Final architecture sorting out (again)... sigh. Developed an algorithm for splatting voxels against oblique grids that should work nicely.

Finally sorted out the X-Win Pro software that I've spent weeks trying to get installed. Sigh.

Maya licenses are apparently on their way from Alias|Wavefront right now.

Arranged for Juliet to get an OS reinstall soon, hopefully will fix some of the incessant crashing that it's had lately.

Lots of rambling, trying to sort out MWC and TBC stuff.

Wrote up an MWC99 site map and sent it off for perusal by web guys.

10/3/99: Spent the morning doing final, final, final architecture stuff. Now it really is time to start coding. Time is running out for early April SIGGRAPH deadline.

Coding, reworking old code into new shape.

MWC99 story sorting out. Trying to chase Case about for TBC prizes. Scheduled the TBC final for Friday, 7pm CST.

11/3/99: Spent far too long trying to tidy up the disk on Juliet, the general lab Macintosh. Supposedly our Mac sysadmin is going to come over and reinstall the system on it, but no sign of her yet.

Got a little bit of work done today, but the coding hasn't really worked out quite as well as I would have liked. There are still some fundamental issues that I have to sort out.

Some MWC99 stuff, also chatted with Ananab at length about Civil Order's tournament play and the role of criticism.

Oli came down from Wellington to visit friends, so I spent a few hours chatting with him this afternoon.

12/3/99: Sorting out ways and means for actually achieving what I have to in the rewrite. It's really taxing trying to keep it all sorted out in my head... sigh.

Tracey came over and started reinstalling stuff on Juliet.

The tramping club's river-crossing tutorial has been re-scheduled for Wednesday, so I can help Case with his tournament on Sunday. Hooray.

13-14/3/99: No work this weekend.

Spent most of Saturday doing TBC organising, and all of Sunday helping Case host his Seven Phoenix Rising tournament on bungie.net. Oli was still around after Nathan and Janet's wedding in the weekend, so I got the chance to catch up with him some more.

15/3/99: Very little constructive work so far today. I seem to have caught a nasty cold from my flatmate and concentration is pretty hard.

Most of the morning occupied by going to the hairdresser and the dentist; also, the Trial by Combat final was today so that took several hours to complete. Info on how that finished on the TBC web page.

16/3/99: Working on a SplitTracker and some Collection tracking code.

Had some long discussions with Wolf and Karan about their work in polygonization and possible impact upon my project. Interesting stuff, and I'll have to think about how it might integrate into my work.

SIGGRAPH sketch deadline is April 7th 1999. That is three weeks away today.

I have a nasty cold and it sucks.

Macintoshes are the spawn of the devil. I spent about an hour trying to install Adobe Illustrator, and when I did eventually install it, it overwrote a newer version of the QuickTime utilities that were already present. This caused just about everything else to stop working. So now we have to download the new version of QT 3.0 again. ARRGH!

Set up the MWC99 mailing lists.

MWC99 web design stuff.

QT 3.0 installed, after about 2 hours of pissing about trying to deal with stupid MacOS 8.5 bugs.

17/3/99: More coding, along the same track.

I've managed to tidy up most of the loose ends involved in the changeover, and deal with all of the design issues. Now all that's left is a few files, which contain the real meat of the issue; csggraph, octree, raytrace, split, view and wglview.cpp.

Wrote Collection display code; wglview.cpp is finished. Next up is implementing the CSGgraph's Collection tracker, so that the primitives may compute their octree quickly.

I'm feeling much better this morning, so hopefully I can get back to useful work again. Unfortunately, my forearms are aching after practicing wrist locks at Hapkido last night. :)

Beating people up on various Myth forums.

MWC99 rules design.

The MWC99 hotline server is up and running. Yay.

18/3/99: Lots of work, recoding octrees and leafnodes. The code is taking shape very quickly and I hope to be able to compile it by tomorrow afternoon, so that I have a working version when I go away for the weekend.

Finished all the octree coding for level 1 of the changeover, only incremental_update to go.

Argh, realised something rather fundamental about how ghosts / inactive Collections have to operate. It's going to require some recoding in quite a few places...

octree.cpp is now finished, apart from the changes necessary for the new ghost mechanism. Shouldn't be too taxing and I should be able to do it later on this evening. Now it's off to the gearbuy.

Organising a dinner party with Rob et al.

Slow Myth day has let me get a lot of work done!

Returned the pack that I borrowed from Rec. Services. Tonight is the gear-buy at the Wilderness Shop so I should be able to equip myself with all manner of expensive toys.

19/3/99: Finished recoding the octree stuff... it should all be working A-OK now. Items to be done this afternoon: split.cpp (not necessary for Phase One), view.cpp and wglview.cpp (only a small amount of work) and raytrace.cpp (could be tricky). God, I'm not looking forwards to the first compile...

I seem to have gotten lumbered with supporting Mirage again this year. And to make my life extra fun, Codewarrior refuses to compile the code and crashes for no apparent reason when compiling prim_cube.cpp...

Hopefully, that's the last I have to see of Mirage for a while. And the last I have to see of third-years.

Karan gave us a great demo of Maya this afternoon.

Mmm, toys. Equipped with a new pack, sleeping bag and fleece jacket, and divested of some numbers on a piece of paper, I feel much better...

MWC99 planning, lots of it. Making up for the slow Myth day yesterday, sigh...

20-21/3/99: No work this weekend.

Went on the OUTC trip to Fiordland. It was great fun, but pretty tough; I was looking for a taxing trip and that's what I got.

22/3/99: Basically no work today.

Spent the entire morning catching up on my email from the weekend, basically.

Played a M2 tournament game with my order; God, it was appalling. The tournament organisers picked a map that's not designed for 2 teams, but for 6; so the starting spots aren't arranged well around the map. We started right next to the other team and they made it to the center first -> nothing we could do but lose. Suck.

Helped Case and a few others do final testing on a new netmap for his tournament.

23/3/99: Came in to work early, so I'm ready to actually start working at 9 for a change.

Changed the ray-tracing code to work with the new RCSGgraph structure.

Fixed the display code. Time for the big compile and Phase 1 check.

Fixing small errors, typos, code inconsistencies.

The code compiles and links fine; and now, the task of making it all work together begins.

Tried to playtest some MWC99 games; what a waste of time that was. Our connection just isn't usable during the week.

Causing havoc on the Marathon's Story page.

24/3/99: I like this at-work-early thing.

Debugging, fixing small problems and logic errors.

Oh My God. Geoff just told me that because of the SIGGRAPH review process, my sketch needs to be completed by the 29th of March, far from the 5th of April that I was shooting for. Now it's time to really start working; this is going to be a tight one.

I've finished debugging and testing out all of the changes that I've made for Phase One. In the meantime I've uncovered a problem with the design architecture that I built, which will need to be resolved. I'll come in later on this evening and fix this if I can.

None for the foreseeable future.

25/3/99: Working on a ghost-tracking architecture using legacy nodes in the SplitTracker. Hopefully should be able to account for the fact that the ghost set needs to be updated without recursing the (empty | unchanged) sections of the Collection octree.

Every time I hit 'kill program' in the debugger it doesn't close off the OpenGL context correctly, and eventually it screws up the OpenGL driver enough to require a system restart. So down we go!

It lives...

Phase Two (the voxel intersection octree generation) is complete. On to the next phase, which will probably only get tougher; actually reworking the triangle-splitting code to fit into the new Collection strategy.

Finished coding for Phase Three, it all compiles. Time to run and debug now; this should be the toughest stage, because it involves the triangle-splitting code that was such an S.O.B. to get working in the first place.

Fixed all the memory leaks, but it's totally non-functional. Sigh...

Woohoo! A little pain clears the mind... after practicing arm bars at Hapkido this evening, I came back in here and literally solved all the problems within ten minutes work. I had forgotten to quite finish linking up all the code, but when I did so it all started working. Straight out of the box. On to Phase Four!

Well, maybe not. The split code is all working, but there's something fishy about my incremental update stuff.

Yeah, right.

26/3/99: Fixed the incremental-update problems that were occurring. Phase Three is now complete, at 09:05.

Coding for Phase Four.

After quite a lot of coding, I decided to discard my original idea for Phase Four's CSG operations, which involved a lot of complex graphics coding.

Phase Four is complete, but disturbingly it's not showing the speedup that I was hoping to achieve by now. I'll be able to evaluate it better once the last piece of code is in place, but it's not looking good.

Phase Five is now complete, but not totally debugged... there are occasional spurious cells showing up empty (eek!). It's not fast at all... 5-10 fps on my simple test scene. Damn. I will profile it tomorrow morning (it's now 10:40pm and I'm going to get some sleep) but I was hoping for much, much more.

I wish.

Fixed the problem with this work log that was compressing my 'work' section up into the left-hand 20% of the page. Surprise, surprise, it was that transcripted ITS email up in February. Sigh.

Signed up for some tramping stuff.

Helped some poor third-year with some basic programming concepts that his lecturers really should be teaching him. Sigh.

27/3/99: Lots of debugging. Found and fixed a few problems, but one of the fundamental pillars of my theory (the ray-casting versus triangles) is just too numerically unstable to really work well. I'm going to have to do something about this, but what I don't yet know.

I just had (7:23pm) the first debugging-triggered endorphin rush I've ever got. After about 90 minutes of tracking, isolating and analyzing test cases, I found the problem deep within the heart of my triangle-adding code for cell checks. I discovered that the triangle-buffer wasn't being reset between cells. Not only does this solve a large number of the mysterious triangle errors, it also means that my technique ISN'T cripplingly slow, it was just doing 64 times as much work as it had to. It felt so good to finally fix that problem, I almost wept. Of course, the fact that I'm seriously sleep-deprived helps as well; I've been acting irrationally all day, as George will tell you.

There's something seriously wrong with either my ray-tracing code, or the way that I'm handling inverted surfaces. I think it's the inverted surfaces code, as this is completely new whereas the ray-tracing has been working for months. I hope the ray-tracing code is working. If it isn't I don't know what I'll do.

Time to get some dinner.

In the end, I decided not to come back in to work after grabbing something to eat, because it was 11pm already and I was tired.

May be helping Case host the final of Bungie's current tournament, because his Internet connection is WOL.

Spent several hours helping Case by hosting the final of the Seven Phoenix Rising tournament. I need to get this sketch done, but helping Case is probably better for my long-term career goals right now. Plus, it's a lot more fun. :)

28/3/99: Found and fixed several major bugs with my CSG code; switched it over from ray-tracing to point-intersection (which is faster, more stable and works better). It all seems to be going fine now (touch wood). Time for some more testing though.

When I tried to put together a test scene for the SIGGRAPH sketch (so I have some results) I found a few more bugs. I've tracked down the root cause of one and will fix it tomorrow morning; my target is to get this thing totally debugged tomorrow, and get results out of it too. Then Tuesday is sketch writing day.

Sorting out details of the tramping trip that I might be going on next weekend.

I am definitely going on the aforementioned trip, up to the Heaphy track in Nelson. We'd be leaving Thursday evening and getting back the following Wednesday, after a 5-day tramp along the west coast of the upper South Island. Groovy, but before I can do that I need a jacket that takes up less space; my pack isn't designed for such long tramps and I'm going to need every cubic centimeter of space.

29/3/99: Oh god, it looks like it's going to be a hot day today. Now that I do not need.

Fixed a stray-triangle issue. It's only 11am and it's already approaching my maximum working temperature in here. Damn damn damn.

Fixed a problem with stored inout results and calloc() zeroing a buffer.

Fortunately, the temperature cooled down a great deal this afternoon, and it's actually a pleasant working temperature.

After a great deal of considering, I've realised that the way that my SplitTracker is used to keep track of where Collections are... it isn't working. It's not going to work. I need a new method. Said method will probably take quite some time to code up and be hard to debug too. It's now 4pm on Monday afternoon; I have this evening to do it in, and that's all.

Coded up the SplitTracker and guess what... no change in the observed bug that I was trying to fix. Hmmm. It is now 11:30pm and the rendering DLL has started crashing again, so it's reboot time.

Oh dear lord. The whole point of the new SplitTracker code was so that I could have last iteration's data available to me. So what do I do? In the piece of code that gets the splitnode, it checks to see if there's a previous iteration and ZEROES THE NODE so that it won't be uninitialised. Thereby negating the entire point of the whole section of code. Arrrarrararararrgh. 12:15am and that problem's solved. There are still more though.

It's now 2am and there are still bugs that need to be worked out. I've accomplished an awful lot, but there's still more that needs to be done. My goal of having the code completely debugged by this evening just isn't going to happen; I'm going to get some sleep.

As if.

30/3/99: Today I have to write the sketch. The debugging isn't complete yet, but it will have to be soon.

Fixed a really stupid bug with ghost insertion.

Fixed a bug that was causing terminals to mis-report each others' full/empty status due to return value overwriting.

After about four hours' work, tracked down and killed an extremely subtle bug that was causing child octrees to have some of their parent's data written into them. Oops.

I think there's one last bug left. It seems to be related to incremental-update and the splittracker code; I've written a whole suite of test routines and after dinner I will have to fix it ONCE AND FOR ALL.

Fixed the problems with the splittracker code, I think... however, when I go to deallocate it it crashes now. So there's still something wrong.

I wish NV4OGLNT.DLL wouldn't crash when my program did something wrong. This rebooting is a real chore.

Fixed the outlier-ghost problem again. Now the piston-head runs up to create_csg and I should be able to manipulate it okay... fingers crossed.

Nope. Crashing again. After about an hour's debugging I fixed the problem (incorrect reference count).

Fixed some problems with the rotation DMD.

It's not perfect, but the system is in a demonstrable form. Should be good enough for me to write the paper tomorrow morning. It's now 12:40am and I am going to go home and get an early night so that I can be in at 7:30 tomorrow morning.

Not likely.

31/3/99: Came in moderately-early and spent about two hours writing 30 words (the summary of my sketch). Sent off the submission authorization form in a courier pack.

Writing the sketch! Three pages can be pretty hard.

The sketch is in final draft form, and I've done one of the figures. Tomorrow I need to get a good figure illustrating the system in action.

Roleplaying this evening was lots of fun; we wrapped up the campaign that we've been playing for several months, and are ready to start a new one.

1/4/99: Generating example results for my sketch.

Massive debugging efforts this morning when I discovered that a critical part of the system wasn't working in my test case. Argh!!

Oh dear oh dear... far too tight for my liking. I've just uploaded the sketch, and we meet up for the tramp in 6 minutes time. Phew! I'm off to the wilds near Nelson for a well-deserved rest. Not an alarm clock for kilometers.

Final preparations for the tramping trip this evening. Went and bought a more appropriate jacket (I already have an around-town one).

12/4/99: Haven't heard back from the SIGGRAPH convenors, which is a little worrying. But Geoff hasn't heard back about his sketch either, which is a good thing from my point of view. :)

Back from the trip, which was excellent. Great fun, good company, marvellous scenery and pleasant weather. Can't ask for more than that! We walked the Heaphy Track in 4 days plus some time for sifting about.

Sorting out the MWC99 design teams, who mostly haven't done much in my absence. I can see that I'm going to have my work cut out for me this week.

Went off to lunch and thence to a tramping-club meeting. Interesting stuff was discussed and much sifty behaviour ensued.

Tried to enrol in an evening class through Rec Services and was shot down! It's full.

Played in a Myth tournament match with my order, which we were winning when I decided to go to lunch.

MWC99 writing stuff.

Finished reading David Brin's "Brightness Reef" and I'm hooked. Bad. I'm now off to the public library before it shuts, to see if I can pick up the next in the series.

13/4/99: Basically I've devoted today and yesterday to MWC stuff.

The library didn't have either book, so I went home empty-handed (but with a new borrower card supposedly in the mail to me).

Woo, we won the match yesterday after I left, 4-1. Hooray for Civil Order!

Found a book on the Internet that looks very, very interesting... Freeman Dyson's latest work.

Lots of MWC99 work on story and rules issues.

14/4/99: Nothing yet.

Lots of MWC99 stuff, story, web, rules, etc etc.

Going to see 'The Matrix' tonight at the movies.

The movie was full, so I started working on the MWC99 server-side page updating software instead. About half of the data formats are done and being read in correctly. Still to go: reading the rest of the data, and page generation, finally image generation.

15/4/99: This week is basically being devoted to my MWC99 commitments.

Looks like we're going to be opening the MWC99 website for business on May 24. That leaves a little over a month to complete everything that's now outstanding. It's crunch time and I am going to be working very hard on it all to make sure that the tournament kicks ass in every possible way...

Spent most (hell, all) of the day creating the MWC99 server software. It's now reading pools, brackets, match results and basically all of the tournament structure. This evening I have to debug it and write a text output engine so that I can check it.

All debugged and the pool-match reading appears to be working, but it's 22:30 and I need to get some sleep. I haven't written an output engine yet, that will come tomorrow. Oh, and I also need to test the elimination ladder tomorrow.

16/4/99: Nothing.

Went to the library to get Infinity's Shore out, and also to fix a few things with my library record (they got my date of birth wrong, and their email system was barfing on my address).

Lots of MWC99 work, finished off the reading side and put in place the skeleton for the page output engine.

Went to see 'The Matrix' with Simon (since Jessica cancelled). A fun film, and pretty damn good. But it could have been so much better if they had a real actor in the main role instead of Keanu Reeves! Dammit...

Infinity's Shore is a great book! I started reading it late last night (whoops) and couldn't put it down until... er, late.

17/4/99: Weekend.

I got up early this morning; the earliest I've been up all week, and it's a Saturday today. I get the feeling there's something wrong here, but I can't quite put my finger on it... :)

Did a bit of MWC99 web stuff, practiced a few games with my order for our match vs The Companions on Monday, but mostly read Infinity's Shore all day. Oh well.

18/4/99: Weekend.

I've really got to pull finger today and finish off the MWC99 website in as much detail as I can.

Hoder and I spent most of the day working on little details about the MWC99 website's layout and it looks GOOD. Very good.

Wrote a couple of news items for MWC99.

Played in a Myth match with my order, which we won 3-0. Yay us!

19/4/99: This week I plan to get back into working on my PhD, now that the worst of the MWC99 fires have been put out.

Finished finding quotes for the MWC99 website.

Played the finals of the Forge and we won! Best of five, we trashed our opponents 3-0. Woo woo; I wonder if there are any prizes.

Put more of the MWC99 website together, including the first actual HTML. Currently working on automatic image generation.

20/4/99: Nothing today either. Events keep conspiring against me. Argh.

Yikes. I went to check out the Myth Codex's archives looking for an old post of mine, and I have a full 4.2% of all postings on that discussion board. That's a fair whack...

MWC99 playtesting, picking out good game and map combos for the tournament.

Continued writing the automatic text generation stuff for the MWC99 page.

Spoke to Tavis about the possibility of getting the OUTC web page up and running.

21/4/99: Nothing yet.

Ferrex is shutting down the Myth Codex, so we're going to have to find another server to develop on. :(

Lots and lots of work on the MWC99 website, it's going very well.

22/4/99: Today was the Graphics Lab's Smart Day, an oddly Geoff-inspired ritual where everyone dresses up in collars and ties and goes out to lunch. An excellent way to waste an afternoon if you're so inclined; however, it can be very galling when you have a lot of work to do.

More MWC99 work, converting rules over to a web-parsable format.

Picked up Heaven's Reach from the Public Library where it had been held for me, and read it all that night. Damn fine trilogy, well worth reading.

23/4/99: Karan's seminar didn't go terribly well today; technical difficulties, with the projector, the video player and the Mac powerbook.

The rules are up on the web and it's working nicely. Unfortunately I had to recode a significant part of both the C++ engine and the HTML layout in order to get it to integrate.

24-5/4/99: Weekend.

Spent most of the day testing games for MWC99 with our playtesting group. Also completed my tax return.

MWC99: working on team pages and general structure. Set up the About and Story sections, finished off player pages, added headings. Created threat and rating icons. The next thing is converting story info across to the website, then comes the big challenge: match results.

26/4/99: Fixed a problem with Mirage's error reporting that was causing it to a) not report errors, b) report huge memory leaks and c) crash.

Changed the split-triangle buffers over from fixed-size to dynamic allocation, thereby avoiding a debug-assertion and hopefully making the code more stable. Checked that my code is running so that I have a showable demonstration for the school visits tomorrow afternoon.

A little shepherding of the MWC99 writers, but they're pretty much on track now. I can turn my attention back to the website again.

Withdrew all the money from my savings account in order to start paying back my student loan. Walking across town with $2500 cash in your pocket certainly does make you feel alive... and paranoid. Especially when you walk past Dunedin's resident crazyman on the way. :)

Apparently Puzza is spell-checking my work log in an attempt to prove to me that spell-checkers can be useful. And I say to you, Puzz, that spell-checkers are for the illiterate, and those who like to be told that all of their place names and friends' surnames are spelt wrongly.

Proofread + revised more MWC99 story stuff.

27/4/99: Showed a bunch of very uncommunicative schoolkids around the Graphics lab. Boy, what wet fish.

Updated Mirage to v1.0.6.2 to fix an incompatibility with the new version of Red Hat Linux that our sysadmin's installed on some machines here. Specifically, ecgs- doesn't like some of my C++ constructs. Pffft.

Superb article on Slashdot about America's reaction to the Columbine High tragedy, and how it's impacting teenagers who e.g. wear trenchcoats or play Quake.

MWC99 playtesting and writers' meeting.

28/4/99: Working on trying to figure out a mysterious buglet in my code and it led me into some very deep thinking on how I handle stuff. It may require a significant amount of changes to the way that I handle ether.

Spent the morning writing tournament reviews for a possible new website. Also sorting out wacky preprocessor directives for SSI-ish stuff.

29/4/99: Spent most of the afternoon grappling with conceptual problems involving different objectspaces and whether or not it's practical to cache voxel coordinates in the various spaces so that repeated split-cell accesses don't have to recompute local cell coordinates in order to access the triangle array. Unfortunately I just can't concentrate quite well enough to do it.

MWC99: assigning game and map combinations to rounds. Looks like we're nearly done on that front, just a bit more playtesting to go.

Drafted out some code for the MWC99 results sections (match + game reviews).

Started reading "Godel, Escher, Bach: An Eternal, Golden Thread" by Douglas Hofstadter.

30/4/99: Implemented the change in point-intersect timings. Speeded up the precalculation phase by a good 50% and it's not over yet!

After writing all that code, I ran it and got out polygons that looked a lot like multicoloured snow. D'oh! But looking at the patterns of the snow, there were these pretty triangle-shaped artifacts. So I looked at the loop variables carefully again, and there was a j swapped for a k. Fixed it and it all works perfectly. I love it when a plan comes together!

MWC99 final games are nearly complete. We're looking good.

1-2/5/99: No work this weekend.

I've spent a good fraction of the weekend in the lab working on MWC99 stuff. From 0630-1740 on Saturday and 0440-1530 on Sunday. Eek. (I was up that early because my order had a match at 5am local time on Sunday).

Went to catch the movie 'TwentyFour Seven' at the Regent, as part of the Film Festival. Depressing, but very worthwhile regardless. Nice to see a film once in a while that leaves a few things unsaid for a change.

3/5/99: Lots of work on my PhD today, tracking down a very complex bug. No actual success, but I'm getting close to the damn thing now.

Helped Bungie test the final candidates for their v1.3 Myth II patch.

4/5/99: Worked for a long, long time trying to track down this damn bug. But it's just not happening. :(

Very little.

5/5/99: Some big announcements today; first, my flatmate Steven is now engaged to his girlfriend of some eighteen months, Tracy White. Secondly (but somewhat closer related to my worklog), my sketch has been accepted for SIGGRAPH '99! Good to hear. I don't know what the throwout rate was like this year, but apparently it was something like 8-10 last year.

Tracked down and nailed that goddamn bug. It was a mix of things; a conceptual error was being masked by a pointer-increment inside a loop that was being bypassed by a 'continue' statement, which was causing the error to manifest in the next Collection that was split against the same object. Phew, now it's done.

Rewriting the way that the TriSplitter interacts with the Collections. Much more elegant now, and no longer crashing mysteriously (?).

Spoke too soon. Bugger.

Hunted and squashed a few more bugs.

Trying to work out how I'm going to get to LA, where I'm going to stay, how it's going to be paid for.

MWC99 is getting to be very slow going. It's now T-minus 20 days to the website's opening, and my teams are starting to lose interest (particularly the web-design one). Argh.

6/5/99: Spent the entire morning working out a very complicated bug in the triangle-splitting code. Arg.

Oyez, oyez, it is fixed, and the cut edges are all nice and smooth and fixed. There are still a few bugs in the code, I believe, but all of the really big ones are gone. Phew!

Travel arrangements for SIGGRAPH. I need an ISIC card and a passport now, will see about getting application forms for those off tomorrow.

Had a meeting with Geoff and Richard, talked about my PhD in between digressions about compiler technology and related issues. Worthwhile, I guess.

Moved the MWC99 development directory from mythcodex.com to macobserver.com.

Planning for MWC99 story stuff, and also how we're going to manage publicity.

7/5/99: Finalised travel and accomodation arrangements for SIGGRAPH 99.

I have to speak at the graphics meeting today, so it's time to plan out something for that.

Graphics meeting went well, helped me work out future ideas in my head well.

Played about with the Civil Order site, some MWC99 stuff.

I'm going tramping for the weekend, down to Port Craig on the south coast. It may be a bit chilly, but I'm sure we'll survive.

8-9/5/99: No work.

Tramping was great fun! Superb weather, as well. The Percy Burn viaduct is really quite amazing. It's 36 metres high and is the largest surviving wood-framed structure in the entire world. Absolutely incredible to think what it was built with, around the turn of the century.

10/5/99: Our FedEx packs from the SIGGRAPH 99 people arrived today; the submission deadline is the 10th of May. Oh, that's just smegging brilliant. Time to get into it.

Fortunately, the text for my sketch has been finished for months. But I have to get the figures into the format that they want now.

Eek. I had to render a PostScript figure at 900 dpi so that I could then compress it into a TIF... and it only renders into an uncompressed PPM format. That means I had to fling around some rather large files, viz.:

-rw-r--r--   1 cbutcher stage4   938297312 May 10 16:57 temp.ppm

Fired off the finished sketch materials for publication.

MWC99 stuff, finalising the Story section pre-opening. Got the scroll image off Rust Dragon and it kicks some serious bootae.

Spent an awfully long time catching up with issues raised over the weekend while I was out of contact.

11/5/99: Trying to get an ISIC card and a passport. Lots of running around.

More patch testing for Bungie.

Our Internet connection is absolutely unusable. But I have to keep trying, hanging on for every stray packet that leaks over the NZ -> US connection. Argh.

12/5/99: Playing around with emacs versions on Atlas, finally got one that works nicely.

Network connection is still abysmal.

Went to a psychometric testing seminar. God, what an utter waste of time. Basically the speaker went over some sample questions from primary-school-level verbal and numeric aptitude tests. None of the insight into personality measurement that I was looking for.

MWC99 stuff.

Installed Quake III: Arena test on my research machine. It's pretty, but it's just Quake. Shrug. Had to update the display drivers to do so, fortunately nothing else seems to have broken.

13/5/99: Finished my passport application form, now I just need the birth certificate to go with it.

MWC99 problems with FTP ASCII mode and CR/LF conversion between Mac -> NT -> UNIX.

An awful lot of MWC99 stuff. We're really getting close now.

14/5/99: Nothing.

More, more, more, will this website ever be finished? We have a final timetable now; 24 May - 1 August.

Lots of MWC99 stuff, perl hacking, discovered that my main web designer has quit (argh!). So tomorrow is Photoshop day, I guess.

15-6/5/99: Nothing.

Getting ready for MWC99 opening next Monday. Preparing publicity info, emailing news sites, tidying up the website's final design touches and integrating with the Macobserver people.

17/5/99: Nothing.

More MWC99 design work. The website is largely finished now and everything is almost ready to go (I've got about eight things left on my todo list, and they're either small or can be done post-opening). Woohoo! I still have to chase two of my web designers around to get some final images out of them before opening though.

18-24/5/99: A little bit of work, chasing down ISIC cards and passport stuff, but not really an awful lot.

Spent almost all of Monday trying to get a birth certificate from the Department of Courts. Quite a runaround.

Most of this week has been taken up with MWC99 stuff.

Opened the MWC99 website for business; this should ease my MWC workload off quite a bit, hopefully, and let me get back into my PhD.

25/5/99: I have to give a presentation to the people who adminster our 'Research Theme' this afternoon.

Sorting out MWC99 sponsors' details, more story work, accepting applications from match reviewer candidates.

Entered the first team into MWC99... woo.

26/5/99: Helped Wolfgang with some partial differential equations for his Cao-En modeller.

Some paperwork for Geoff arrived today from SIGGRAPH and it looks like I'm going to have to deal with it (he's out of the country attending a conference). Sigh.

MWC99 entries occupied a lot of my time today.

27/5/99: Nothing.

More MWC99 entries, they're really rolling in now.

28/5/99: Finished sorting out the SIGGRAPH forms for Geoff. Did a little work on debugging a problem with my PhD project (a small one).

MWC99 ad nauseam.

29-30/5/99: Weekend!

Went on an Outdoor First Aid course on Friday evening through to Sunday, it was really interesting and valuable. Of course, now I have 143 emails to check through for MWC99 registration. Ugh.

31/5/99-4/6/99 Did some more work on my SIGGRAPH stuff, decided not to submit anything to the Creative Applications Lab (too much effort, for not enough gain). Helped Geoff with his Ribena pictures again.

MWC99 uber alles... lots of time sunk into this over the last week. Registration is complete, and the tournament is underway, so I can get back to doing other stuff at last. Yay!

5/6/99-8/6/99 Got some info from the SIGGRAPH 99 people about my sketch. Apparently I am in the second last session on Friday, entitled "Hard Core Modeling" ... LOL!

More MWC99 stuff. It's kicking ass. No, really.

updated 02.21.18
© chris butcher 2000-2003