Dec 052012

Yesterday, while talking about where I work with someone, I mentioned that I take the commuter rail into Boston—a 45ish minute commute. The other person’s response, “Oh, so you have that commute,” as though she sympathized with the pain of such a long commute.

That struck me, because while the commute I have now is about as long as the one I had commuting into Providence, I actually look forward to it. Where before I would have thanked her for her sympathy and acknowledged how unpleasant long commutes are1, I am actually quite glad to have the commute I do because it affords me the opportunity to write for an hour and a half every day with no distractions.

Worldbuilding for the next book involves Calculus and relativistic physics. The reader will never see any of this, but it has a direct impact on when the events of the story play out. I also have a very rough story outline, well ahead of my January 31 deadline and wrote a dialog skeleton for the last scene in the book while on the train this morning. Can’t wait to dive into this one!

Writers write, but writers must also read. I’ve been lax about this, much to my chagrin, but surging through Ashes, finishing it, and releasing it has stirred in me the desire to read more—a lot more. I’m angling to get a Kindle for Christmas to further facilitate this, at which point I will probably spend all the money on buying the various books on my Goodreads to-read list.

  1. Rest assured, I’m under no illusion that 45 minutes is even in the ballpark of “worst commute.” []

Stair Progress

 Posted by at 12:22  No Responses »
Jun 202011

All1 of the stairs and risers are cut to their proper 30″ width2 now. I spent a good chunk of time on Sunday calculating the angles and drawing the templates for the stringers. It was fun to put high school trig to practical use, and I’d be lying if I weren’t indulging in a little “take that!” thinking toward all of the anti-math/anti-school miscreants I grew up around3.

As a result of the circular saw being, well, circular, I’ve actually got some corners in the risers that still need to be cut. I’ll probably just do that with a hacksaw, since it’s small and most of the cutting was already done by the circular saw. Once that’s done, I’ll lay the cut stringer onto the uncut stringer board and use it as a template. With those cut, it’ll be time to sand and stain everything4.

Once everything is stained, I’ll tear down the old stairs and put up the new stringers. From there, it’ll just be a simple matter of drilling pilot shafts and screwing the steps and risers into the stringers. Depending on how secure the stringers feel, I’ll either put the support struts in before I do the steps and risers, or once everything is assembled.

All told, I’m hoping to have this entire thing complete by next weekend, so I can start working on the vacuform table in earnest. I’ll post pictures of the whole process once it’s complete.

  1. 10 and 10, anyway. I will actually need an additional riser on each end of the stairs if I want to fully close them off. I may not bother, though, since for basement stairs having risers at all is sort of unnecessary []
  2. Well, mostly 30″. I managed to get some variation in them despite repeated measuring and laser guides on my circular saw, but c’est la vie []
  3. To those that I grew up around that were not anti-math/anti-school, I salute you! []
  4. Everything, that is, except the support boards. Those still need to be measured and cut, but those will be very quick, since there are only six total. []


 Posted by at 13:42  2 Responses »
Sep 242010


That ugly word is actually a very useful tool for reconstructing geometric information from 2D images. Using a collection of similar photographs of a given subject, you can use matrix math to recompute the 3D structure of that object from the 2D images. Not by hand, mind you. That would take way more brainpower and patience than pretty much anyone has any desire to lend to the task. Computers, however, make great photogrammetric calculators.

Why is this relevant to anything? Well, it’s pretty important when you want to accurately recreate something in the world in a 3D modeling environment and you don’t have access to A) the thing you want to create and B) a 3D scanner. Specifically, I’m talking about modeling spaceships. Most 3D hobbyists just wing it, eying the proportions and getting pretty close. But let’s be honest: when have I ever been satisfied with getting “pretty close” when I could use math to be exact?

I started out modeling a Star Destroyer last year, trying to take very accurate measurements in Photoshop and extrapolating the “right” values by averaging several of these measurements together. I was putting together what looked like a fairly accurate model. Then I read about photogrammetry. This had two effects: the first was that my progress on the Star Destroyer model ground to a halt; the second was a period of intense research into the fundamental math behind photogrammetry. This included (re-)teaching myself matrix math, learning about projection matrices1, and so on. I googled university lectures, dissertations, and dissected open-source projects to understand how this process was done.

Sadly, none of the open-source projects I found would do quite what I want. It seems that the hot thing in photogrammetry is reconstructing terrain surface detail with as many recreated vertices as the resolution of the source images would allow. I wanted to define just a handful of points each image and have a mesh reconstructed from them. From there, I would do the fine detail work on my own. So, I started writing my own program (in Python) to do it. Losing my job, getting a new job, and getting married all conspired to prevent much progress on this front, though, so it hasn’t progressed very far yet.

Assuming I can get something I’m happy with, though, it will alleviate one of the biggest sticking points I’ve always had when modeling technical things: accurate blueprints. Just about every set of blueprints for every technical thing2 I’ve tried to model has had errors in it. Not little, nitpicky errors, either, but major, mismatched proportions between orthographic views. In one image, a component would be X pixels long but in another image—from the same set of diagrams, mind you—it would be Y pixels long. In some cases, you can just split the difference and get something decent. Most of the time, these compromises compound until you’ve got an irreconcilable problem.

Anyway, this is probably one of those topics that will prompt most people who read this to smile, nod, and pat me on my math nerd head. All the same, it’s interesting to me, so maybe it’ll strike your interest to.

  1. A projection matrix describes the conversion of a 3D coordinate to a 2D coordinate through a camera lens, essentially. []
  2. Okay, okay, spaceship. []
Aug 062009

Been a while since my last post.  Since then, a ton of stuff has happened.

  • We fully moved-in to our house (though we’re still only about 25% unpacked).
  • We set a date for the wedding (8/7) and have picked a location for the reception, which may double as the wedding site too.
  • We selected/customized Cody’s engagement ring and matching wedding band
  • My company laid off about 25% of its work force (a layoff I rather miraculously was not a part of).
  • The Vampire game has resumed.

I’m probably forgetting a few things, but those are the big highlights.

One of the reasons I haven’t posted often of late is that it seems a bit of a chore to go to the blog page, log in, write up a post, etc, etc. I’ve recently implemented an easier method of posting that I think should make posting a more frequent occurrence. I’ve also got to get over my internal reluctance to post a battery of short posts as I think of things to say. If Twitter has proven anything, it’s that people enjoy hearing about the exploits of others in short bites. I don’t think I’ll ever hop on the Twitter bandwagon, though (famous last words…).

I finally got LaTeX-style rendering working on my wikis. It’s not that this is particularly difficult to do, but rather I had never had a server setup that would allow me to make the necessary changes to support it before. The particular implementation I’m using right now is MimeTeX. I had to do some custom hackery to make it work (specifically, my server did not seem content to create image links with some of the formatting required by TeX, so I wrote a PHP “middleman” that stands between the MediaWiki math engine and the MimeTeX CGI to properly handle formatting), but it’s great fun.

The major motivating factor in getting the TeX support to work is that I wanted to explore the idea of “damage potential” in EVE Online. Because of the way damage works in EVE, specifically with turrets, a given ship using a given type of gun is going to do the most damage at close range, and then see that damage falloff gradually as the target gets farther and farther away. This isn’t accounting for aspects of the target, which also play a role. The formula for this falloff is known and can be calculated, but I wanted to see how different ships stacked up to one another when they were compared.

I decided that the best way to do this would be to integrate the falloff curve (i.e. find the area bound by the DPS graph for the ship). Of course, this led to about 15 hours of wrestling with a truly atrocious integral. After consulting with Wolfram’s online integrator, engineers at work, the think tank at SDN, my dad, Cody, and Dr. Math,it became clear that the only way to solve the integral was via approximation and a computer.  I wrote up a Python script to do the integral and started getting good results.  I’m not really sure how valid they are, though.  Mathematically, they’re sound, but I’m not sure about their practical application.

I think that’s about it for now.