Saturday, August 30, 2014

Digging in the Dirt

The XR311 is painted up (not by me) and looks pretty good -- especially for the cheapest material Shapeways will print:

Unfortunately I can't offer that model for sale or download. But I did put the tires up for anyone to print, and re-organized my Shapeways store a little.

Went into TechShop today and tried out the billet of 7075 alloy I bought. Different stuff -- it was almost like first day on the lathe again. The main alloying element in 7075 is zinc, followed by magnesium. It is a high strength alloy -- comparable to steel in some of the tempers -- first developed for the Mitsubishi A6M "Zero" warplane. Corrosion resistance is worse than average, and machinability is considered only average. My experience with the stuff is that it made tough, springy chips that refused to break and were difficult to free. It looked very shiny when being cut, but left an obvious series of tool ridges even at extremely low feed rates. It also pushed up in cutting, leaving ridges at the ends of cuts.

So it was a good experience, but isn't going to wean me from the 2011 -- which is so machinable it is described as a "free machining" alloy. The primary alloying element in 2011 is copper, and it goes back even further than 7075; the 2000 series was known as Duralumin in 1904, when Alfred Wilm developed it at Dürener Metallwerke Aktien Gesellschaft. It is also an age-hardening alloy; left to itself, an object machined out of 2011 will slowly gain in strength until it reaches full temper.

What I was really hoping for was improved scratch resistance, but so no. The next alloy I'd like to mess around with, though, is 6061; practically pure aluminum (less than 1% of magnesium and silicon, plus a varying bit of iron, copper, zinc, chromium...) It is probably the most common general-use alloy out there, although one of its major strengths for general use is the high weldability.

What I'd really like is anodizing. But I'm going to have to live with powder coating (there's a class on Monday...if only I had sixty bucks to spare!)

Oh, yes. The machining. I managed only two finished grenades today. Outstanding orders as of this morning are six of the ones without springs, and one with a spring (which takes about twice as long to make). So about another hundred bucks coming in as the payments trickle in on this last batch. That will help.

Notice the snap lecture above? I've been doing that a lot. I set out to write a Tomb Raider/SG1 fanfic because I thought it would be fun. As of chapter 5 and about 20,000 words, I've settled down into a routine; spend a day or two looking up fun obscure facts, then condense them down into one or two pithy paragraphs.

Some scenes go faster, some take more. For a mere paragraph or two with Lara walking along a busy street in Cairo, I had to look up a huge volume of things, including colors and fare schedules of the rather complicated cab system, typical cat-calls (and a brief review of gender issues in modern Egypt), the filmography of two actresses and a little bit about the family of Alexander the Great, typical dress, the details on a nice outfit for her (no -- the shorts and turquoise top are not street wear!) and of course lots of maps and place names.

I'm overdoing it, of course. But its fun to have practically every scene an info-dump of the colorful and the obscure, and the readers seem to like it too...I have forty or fifty people following me already, waiting for new chapters.

Friday, August 29, 2014

Choice and Linearity

Not a particularly original thought, but I'm struck right now by how little influence the player's actions have on any of the games I've been playing recently.

The story in Tomb Raider 2013, for instance, unfolds not only regardless of what you do, but regardless of whether you even know what is going on. I fought the big guy on the ship without having the faintest idea who he was. Turns out, in some earlier confrontations you can chose to overhear the bad guys talking. The game actually and actively discourages this, however.

Now, that might have been a nice little mechanic. That you'd trade gaining useful information against the increasing odds of discovery (and the bad guys are a lot tougher to handle if you don't get the opportunity to silent-snipe them from hiding). Except that no action you the player is ever given is the least bit influenced by what you might overhear.

You can totally go through the entire game ignoring the conversations, skipping the journals, even fast-forwarding past the cut scenes. Because the only real "choice" ever made is to stop playing. (And the only active role you ever take is in playing well enough to get to the end.)

Half-Life 2 and Portal 1 and 2 also give you no meaningful choices. You can't chose to work with Wheatley, or leave him in charge, or leave the PotatOS in the bird's nest. It is rather amusing to view Portal in the meta-view; in-game Chell is renowned as never giving up. External to the game, there is no nonstandard game over. You can quit the game, but there isn't an option to send Chell to a corner and refuse to solve any more portal puzzles.

The meta is even stranger in Half-Life2. Freeman has a reputation as unstoppable killing machine. (Lara gets the same). Well, unless you are really, really good at shooters, you have been stopped. Multiple times. And restarted from a save point.

I know there are some games where internal choices matter. Bioshock, which I've just started, gives you at least two different game endings based on your actions within the game. And, for that matter, even the Civ series will play a different victory video depending on whether you won a diplomatic victory, or stomped the rest of the world into bloody submission under your iron heel (yes; the ending video is very much phrased in that way!)

I think what brought this on is it is a continuum. And that the railroading can seem less onerous depending on how it is done and what is done. Gordon Freeman finishes Episode 3 having effectively kicked the Combine off Earth, and both he and Alyx are still alive.

Tomb Raider 2013 ends up with Roth dead, as well as a whole bunch of other people who didn't necessarily deserve to die. Especially those who died at your own hand; and unlike Half-Life, you can't bypass more than a handful of them. There's no equivalent to gunning the engine and fleeing past the metrocops instead of choosing to fight them. Instead you have to slaughter 98% of the people you meet because if you don't, they'll shoot you in the back as you run past.

(The map is also more linear. Even Half-Life2 -- which is quite linear -- gives you options to bypass concentrations of troops. Tomb Raider 2013 not only gives you only a single path, in well over a dozen instances it places you in the middle of a fight during a cutscene before giving the controls back to you.)

I don't know why the illusion of helping to construct the story is so much thinner on Tomb Raider 2013. But it is. And that makes a poorer game.

My Game Protagonist

Yeah, I've been playing a lot of Tomb Raider. The 2013 "Innocent Lara" is problematic in some ways, but outside of her behavior in a few cut scenes I've been able to mesh with the avatar.

Games -- more so, I think, than television or movies -- are often approached with a level of appropriation. One plays (or watches) while constructing a head canon of one's own. It isn't always possible; sometimes the disjunct between one's own understanding of the world, the logic and the emotional logic of the story, can't be reconciled with the nonsense being shown.

And some time I'd like to unpack more what the 2013 reboot does with gender roles, race, violence, and how its treatment of these areas meshes (or fails to mesh) with the story.

But not at the moment.

The protagonist I'm thinking of at the moment starts as your typical reluctant hero. She had an idea, what was to be an academic investigation of limited scale. She got much more support and interest than she expected, but instead of bailing, she stepped up to the plate to do the work necessary for this much extended scope.

And faced the usual obstacles of a hero's journey. A veritable storm of harassment and threats. It seems at times a whole little world is being thrown into turmoil as she continues to work. And yet she doesn't lessen her standards or let the opposition harden her. She continues in the best tradition of the reluctant hero to question herself, to critically look at every step in her process, to meticulously document and to make sure that she is doing the right thing.

And thank you, Anita Sarkeesian, for doing this. It shouldn't take a hero just to start the project of building a proper critical groundwork so we can get to really improving games. But it does, and thank you for being strong enough -- externally and internally -- to do it.

Monday, August 25, 2014

Vee Hick Cull

The "Morrow Project" XR311 print arrived from Shapeways. It looks real good, even in the cheapest of the available materials (the white nylon). I didn't expect the tread on the tires to show as well as it does. In any case, I'll post some pictures once it gets assembled and painted up.

I'm pushing on contract and hourly right now, as bills are coming due and the next show doesn't go into tech for several weeks yet. So not a lot of time for props or electronics projects.

Successfully replaced another jack on a Sennheiser body pack. It's a pain because the circuit board is so tight, and the traces are fragile. I had to carefully cut apart the old jack with dykes and de-solder the stubs of the lugs one by one. I have at least one more to go through, plus the easier tasks of antenna and LCD, but the big labor is a pile of damaged Countryman B3's. I'm hoping I can return at least some of them to service, but they are all aging.

I may have imagined it -- no way to do a double-blind -- but when I finally washed out the elements the principals were wearing on Shrek, it made a big difference to the sound. Yes; you can actually rinse the Countryman elements in water. Or in alcohol, which is what I do. Do give them time to dry out properly, though!

Meanwhile, the crazy budget system I assembled at another theater made it through the first Theater Camp without problems. I still need to label and document. Downloaded a couple of installation diagramming software packages, but the level of detail I need for these end-users means I'll probably have to do the docs in PhotoShop. Or Inkscape, which is the shareware option to Illustrator.

A Rolls MA2355 is fed by a dedicated microphone (Crown PCC160) and drives two legs of monitors; one in the booth, another in the dressing room. This is completely independent from everything else, but at some point I'd like to link it up to the ClearCom for Stage Manager announcements to the dressing room. (This may be as simple as a length of cable).

The primary system aggregates through a Rolls rack mixer; this pulls in a pair of inputs dedicated to the FOH mix position, a pair from the firewire interphase of the sound effects computer, and front-panel jacks for iPod and dynamic mic for use during rehearsal and by the Theater Camps. On the remaining work list is to cut a plexi shield that will deny access to anything other than the latter two inputs to casual users of the space.

This feeds a DriveRack PA+, which does the absolute minimum system tuning; a little notching in a graphic EQ for gain, a gentle corrective parametric EQ, and delay for the rear speakers (which I'd like to replace, and move further forward to make proper fill speakers out of).

I've also got another rack mixer in there which is not yet connected, but is designed to bring together a second pair of firewire outputs with a second pair of feeds from FOH, to allow both access to the front fill stage monitors.

Still, just this (plus putting in hardwired boxes for the ClearCom runs, adding a Furman to the rack, and a few other details) already cost over fifteen hundred. The bucks add up quickly with sound.

Those bucks went to the theater. My own bucks stretched just enough to pick up a little fabric and repair my futon cover, but not enough, yet, to have any PCB's fabbed off. My browser is still filled with tabs on power MOSFETS and 5-watt LEDs, but that project is going to remain stalled for a little longer.

Sunday, August 24, 2014


Being a physicist is apparently one of those things that is always on. I read in various personal material -- blogs, autobiographies, anecdotes, etc. -- that physicists are constantly aware of the physics going on around them.

This is not a unique attitude. I light the stage, and do sound design for it. I've tried to draw comic book art, and I build and render scenes in 3d. These, and more, are all referenced to observation of the real world. And that means any time I'm out walking, I'm also out analyzing; what made that sound? Why is that shadow that color? What are the depth planes of this scene? 

This is almost back-of-the-mind noticing, mind you. You don't go around with a notebook out, stumbling into things as you try to record your observations. You just, plain, notice. 

And since I've rekindled a (strictly amateur) interest in science, I find myself applying that tool as well.

A couple days ago I wandered into the kitchen late at night and filled a water glass without turning on the lights. It was easy to do, but why? A little experiment the next day showed that the key was the material and shape of the glass. Here's how I reconstruct; the turbulence of the water sets up an oscillation in the tuned resonator that is the sides of the glass. As the glass is filled, the length of the resonator becomes shorter. Since each halving of length is perceived as a doubling of the octave, the perceived pitch center rises exponentially.

Presumably, the pitch appears to be rising swiftly, accelerating, towards a point where it can't be perceived as a tone any more. And somewhere a little short of that, you turn off the water.

The free-air wavelength of a 10 KHz tone is over an inch, though. So what you are hearing is clearly not the air column, but the vibration of the walls of the glass. Which are stiff, and just as making a guitar string more tight increases the pitch, so does making a resonating material stiffer. I tested this with plastic, glass, metal, and ceramic vessels of similar dimensions, and on first blush it does look like that describes the phenomena accurately enough.

On Friday my metal arrived for the next crop of grenades. I bought a stick of the tougher 7075 alloy to experiment with. But what if the label comes off? How can I distinguish it from the 2011?

Isn't it obvious? I held one of each by one end and tapped them lightly with a piece of metal. The harder alloy had a higher pitch.

One of the things that so fascinates me about physics in the "real world" is both how close to the surface it is, and how deeply complex you quickly get out of what are relatively simple rules. Because real materials are complex; they are compounds, they have grain, they have non-simple cross-sections, they connect.

So something as simple as observing which surface exposed to sunlight gets hot, is both a simple and obvious exercise in absorption versus radiation, but also can be unpacked into greater and greater detail as you consider interaction between layers, conduction, whether convection cells are forming in still air directly above the surface, etc., etc.

When you get down to it, much of the behavior of a simple reaved block has to do with levers and friction forces. Friction is what makes short fibers into a rope, and friction is what holds a nut on a bolt. Of course, if you unpack those friction forces, you find yourself in a maze of mechanical interlocking and compression forces and Van der Waals and so forth...

(But at the same time, there are very basic physical laws -- rather, mechanics -- going on that can confuse the untrained. Difficult enough for some to understand that a block trades off length for force; if you are moving twice the amount of rope, you are lifting half the amount of weight (plus overall friction, which goes up with the number of elements in the system). Tough for a lot of people to realize that if you lift a weight, the load on the pulley is twice the weight. You have to add the forces; one force for gravity trying to pull the weight to the ground, a second equal force for the rope keeping that from happening. If you don't understand the basic underlying principles, you can put yourself at risk.)

This is why there are so many jokes about physicists complaining that physics describes the entire universe, and specialities like, say, marine biological acoustics is just detail. Thing of it is, these details are so very, very tough to work out from first principles, you really do need the entire framework of the other sciences, with their laws and rules of thumb and categories (however well or poorly those line up back to the underlying physics).

And that's also why you can get close with an approximation -- like the water glass model above -- but recognize that this simplified model will not track that closely to the real behavior. In fact, it can go entirely wrong...

A Little 3d

"Little" as in 1:6 scale --

This is a mesh from my upcoming Poser set, printed out in the "Frosted Detail" material, aka a UV-hardened acrylic polymer printed with the MJM process.

The legs and shipping plugs are press-fit and allow a limited amount of posing -- when I decide on the final pose I'll put a few drops of glue on them.

The coins, incidentally, are 1-baht from Thailand. I keep a little pocket change from everywhere I've visited.

Meanwhile, the grenades are rolling off the lathe. This is from early last week, before I went in and finished the four bodies you see there, painted up the top of the second solid-body, and shipped them all off to customers.

Since someone at the RPF finally asked, I've been painting up caps (and solid-bodies) in the three colors seen in the actual movie (blue shows up on a couple of uniforms, and there's one green in the scene in the control room when Newt picks it up).

Actually, according to third-party documentation, the HEAP and "Bounding Betty" types are supposed to have different-shaped safety caps. Me, I'd have more than color to distinguish one from the other, because you might be trying to fumble one off your web gear in the dark.

(Plus, and this is a mistake you wouldn't expect from Cameron, blue should really, really be reserved for training and simulation materials. And reserved, too, for that specific powder blue that indicates inert dummy rounds.)

In any case, molding custom caps would be a pain, printing wouldn't work well (smaller tapers and gentle curves suffer from stair-stepping), so that kind of leaves injection molding. Which I technically could do, since TechShop has both injection molding machine and the CNC mill to cut the molds with.

But I'm going to put my energies on learning powder coating instead.

Friday, August 15, 2014

The more you know...

...the more you realize you don't know.

Finished four M40 grenades yesterday. Six hours at the lathe. Now, some of that was just me being a little rusty, but it is still a labor-intensive prop.

This morning cleaned them up for shipping. Here's what has to be done after all the machining is complete;

1) Fit the primer and superglue it in.
2) Clean off the excess glue.
3) Break the edges and remove scratches and jaw marks with 400-grit and 800-grit paper.
4) Hand-buff the whole thing with 0000 steel wool.
5) Apply a light coat of sewing machine oil.
6) Wipe down carefully with clean rags and paper towels.

And of course:

7) Trim a mocap (HDPE pipe cap) to .740"
8) Cut off the label.
9) Sand the trim and top flat
10) Buff the entire cap so it will take paint
11) Apply two coats of Krylon Fusion for Plastic (or Tamiya Olive Drab 2, depending)
12) Carefully cut a 3/32 wide strip from a roll of white vinyl tape
13) Apply the tape 3/32 from the edge and trim to size
14) Spray the entire cap with two coats of Krylon Crystal Clear gloss

I figure that adds another two hours per grenade. Meaning it basically takes a day to make each one.


Here's a typical step; drill a 15/64" hole, lathe a piece of brass rod to the same dimension, and part off. Simple enough?

Not really. Drill sizes are nominal; it may or may not be .234" as advertised. Worse, drill bits chatter. The outside of the hole will be a larger dimension than the deeper parts, by several hundredths of an inch.

And when you part, the parting blade pushes up material. So even if you try a test fit (which I did), the primer may -- well, did bind as I tried to insert it into the finished grenade.

This is why I'm now lathing the bodies to 2-6 thous larger than the finished dimension until all the grooves are cut and the knurling done (which is even worse for materials displacement). Then a final pass to take off those little raised edges. It is more difficult to do with the primer, since that is a mere .2" long. But I need to figure out how to modify the process in order to add this step, or compensate for this problem.

And this? This stuff here? This is the meat. This is the difference between learning a tool or a method, and getting practical experience. This is the mostly undocumented ground knowledge that goes away when a generation retires; the reason why having the "blueprints" to a Saturn V doesn't allow you to just start building a new one. The difference between being a graduate of Google U and being able to struggle through a mostly-right answer, and being an actual professional in the field who solves questions like that daily (and has gained a gut instinct on what is right and what is wrong and where the traps and pitfalls lie).

Oddly enough, I had some of this conversation as I was cleaning up last night. Which started when I was sharing laments with another TechShop member about not following up on the CNC SBU.

TechShop gives you an SBU (Safety and Basic Usage class) before you are allowed access to a tool, but this is like a 101 class, a survey; it orients you to the field. You need to spend a lot more time before you actually achieve some competence.

But here's a thing -- like a lot of learning, you need to follow up. The SBU includes a practicum, and you finish feeling like you at least know how to turn the tool on. Well, you do -- at that moment. Give it a couple of days, or a couple of weeks, and that knowledge will fade.

This is why it took me a full day on the lathe just to get back to making cuts. And why I expect the same thing will happen on the mills (CNC and manual). Because I didn't jump back on immediately, which means I'll be in the same situation of trying to remember what seemed so easy to remember during that four-hour introductory intensive.

Thursday, August 14, 2014

A Little Buggy

The "Morrow Project" XR311 has been ordered from the printer now.

One day, I'll take the 3d printer SBU at TechShop so I'll be able to run off small projects there instead. Except my current membership has less than three months to run...

Doing the wheels, gun ring, and seats this way is simpler than trying to manage their intersections (and make sure there are proper drain spaces for the support material). Other print compromises; omitted the protective covers on the headlights, the rail around the cargo area is just a flat shape, and of course the grill work on the engine cover is omitted. There is a square hole in the rear for inserting a piece of mesh, though. And obviously the end-user will add antenna mounts, 50 cal, jerry cans and the like.

The original (purchased) mesh was quite simple, and I've basically kept it. Tessellated in a few places to smooth edges, built headlights and wheels from scratch, and put in the tow hitch and rear marker lights from my V150 model.

On the "long" list (or maybe on the second page of the to-do list) is revising the V150 as a Poser vehicle. Unfortunately, the optimization for print is rather different. So I have to clean up the mesh, hollow it properly with in-facing walls (and build some inside detail), increase the detail level on items like hinges, vision blocks, bolt heads, and of course UV-map the hull so it can be painted properly.

I did not plan the model properly for this (too many go-arounds with print issues at Shapeways). If I'd optimized for rebuild, for instance, each vision block would be an instance of a master and all I'd need to do is revise the master.

However. Given that the market for such a vehicle in the Poser community is probably no better than that of the printing community (aside from the original client, there's been no interest in the model), I'm not exactly in a hurry on this.

I've been trying to transition from Carrara to Blender as a primary modeler. All 3d applications have a steep learning curve, and most seem to go out of their way to be obscure. They also generally break the UI -- Carrara, for instance, won't use the standard window area or allow the standard hide/quit commands. It also overrides fonts in such a way as to be essentially broken on 10.7 and above (aka, if you try to change font size or otherwise make them more readable, the ap crashes).

As I mentioned in the last post, there's something funny about Carrara's handling of standard interchange formats. So I've been using Poser as a filter; pushing a Wavefront OBJ file from Carrara through Poser without otherwise altering it in order to get MeshLab to open it.

I need MeshLab in the loop because Shapeways prefers STL as a format -- also, STL has implicit scale, which is not standardized in OBJ. Also, NetFab is a nice little utility to re-scale, re-orient, and do sanity checks on a mesh before printing. And it is freeware. And it runs on STL.

The fun thing is, import and export are handled different in each of these aps. The options appear in different menus, and in different forms, with a different train of option screens and similar. Which is nice and brain-straining when you are shuffling a file between all four aps in quick succession.

Previously, I was using Hexagon as the one-stop-shop between Carrara and Shapeways; Hex allows import of OBJ, and export of a STL with implicit scale. But it is also the buggiest piece of 3d software since the late unlamented Amapi, and I don't think I've even bothered installing it on my current computer.

And I'm really liking the checks in NetFab. It caught a bad weld in one mesh I was using, saving a lot of time going around with failed uploads to Shapeways. MeshLab is even more exciting in terms of functions, to the point where it looks a lot like the options in Audacity; you need a degree in advanced mathematics just to read the menu options.

(Both pieces of software, Audacity and MeshLab, offer hundreds of sophisticated options with no inline explanation of that they do. And they are both essentially command-line; if you understand that a little "third-order catmull/poisson stage filtering" is what is called for, then you dial up "fifteen percent third pole, wave center defined by aggregate surface normal," and...viola de gamba!)

(And, yes, I do understand some terms and concepts that many people would find equally mysterious. But this is still, to me, deep magic. Something I am not going to understand just by looking up a definition on Wikipedia.)

Anyhow, the problem is not so much that different 3d applications move the open and save dialog into unusual places, and change all the button colors. It is that each has a unique conception of the work process. And often, a different way of defining what a mesh is in the first place.

As a general rule, the simpler ones let you do steps manually to a mesh you are constructing. The more complex (and powerful) ones make everything possible an operation, with parameters, and generally those operations are stacked into a save file -- meaning you can go back at any point and change one item in the stack while preserving the rest.

My big stumbling block is I'm still result-oriented, not process-oriented. I am used to working with very small poly counts, and hand-designing, hand-tweaking the mesh. This supports printing as well, because I can personally verify all the closed volumes and walls to make sure they aren't intersecting and are watertight.

The way the better 3d applications want to work, however, is by applying processes that attempt to arrive at the same results algorithmically. Instead of manually inspecting a mesh and cleaning up intersections by hand, you run a tool. If you don't like the look of the final mesh, or if the tool didn't work properly, you try a different tool.

I can understand it, and respect it, but it isn't my preferred method. And that is the main reason I keep going back to Carrara. Because as broken as it is, it does do the basic things right.

Tuesday, August 12, 2014

The Pharaoh Three-Dee-Eh-Gahn

The more geeky work is being hard right now. Writing, sure. Electronics, programming, and 3d modeling, not so much. But managed to tweak a third-party model (purchased at TurboSquid) for 3d printing:

This is the FMX XR311, otherwise known as the "G.I. Hotrod." Although never manufactured in other than prototype quantities in the real world, it has made its way into the Morrow Project as a lightly-armed (and very much not NBC sealed) vehicle for general use.

The model omits wheels (at client's request) and because of printability requirements the protective shapes over the headlights are also removed. This is a fairly low-detail mesh anyhow.

Oh, yeah. And the current process? Well, it turns out not only does Carrara export a non-standard Collada file, it also exports a Wavefront OBJ in a way that makes Blender choke. So to get this model in Shapeways, I;

1) Exported from Carrara in OBJ format
2) Imported into Poser 9.0, exported again as a fresh OBJ (but now other applications won't bork)
3) Imported the new OBJ into MeshLab, and exported an STL.
4) Imported the STL into NetFabb, set the scaling and orientation, and exported.
5) Uploaded the STL at Shapeways.

And NOW I'm frustrated. Shapeways is automatically flagging the mesh as bad, and sending me nag notices to fix it, but the check software is stalled. Seems to be a page problem; I uploaded the original test mesh -- the one that passed -- and Shapeways is doing exactly the same thing.

Oh, and on the electronics? I'm committed to throwing together a v. 0.4 version of the Duck Light; ATtiny85 with ICSP programming header, XBee socket, and three (or maybe four mosfets for PWM'ing a 3W LED. No power management, constant-current drivers, level shifting, anything; just naked batteries and a few 1 watt resistors as ballast. On the up side; it should be cheap.

I can learn PCB on this board, maybe even through in some SMD to practice with, and then I'll at least have something for the next time a lantern or magic wand comes along.

Sunday, August 10, 2014

There's a Li-i-ight...

I'm rather tempted to throw together a simpler version of the Duck Light just so I can try it out in actual theatrical situations. And so I can start working out the software infrastructure.  I've run a 2W "Cree" with nothing but ballast resistors and power Darlingtons to PWM it.

I've been reading a whole bunch of spec sheets, and it appears that Texas Instruments has a couple of boost drivers that will take PWM. One thing that is a little unclear is if they will actually PWM through the full range of brightness.

But that's far from the only questions. There's some serious engineering still to go. Thermal issues, noise issues. I don't know, for instance, if you can pack three or four boost converters in a small space, and PWM all of them, and not create electronic, RF, or even acoustic hash.

Oh, and they are of course SMD components. Which is a whole other subject to learn (besides the fact that I actually need to have a PCB made for this; strip board and SMD's do not get along).

I have to keep wondering if I am parameterizing this correctly. Obviously I can't fill the entire wishlist. There will have to be design compromises. But I may be letting myself be constrained by choices I shouldn't be making.

Here's the basic outline;

"A tiny battery-powered LED capable of color selection and animation via direct input or remote control, for use in theatrical props and special lighting effect situations."

This seems to imply the following;

1) 3-5W RGBA. The complexity of the power and thermal management get much, much higher when you get above around 400ma per channel. And the cost of the LEDs also roughly doubles. At this wattage, the LED is as low as $14 at Digikey. It is, however, on the low side of what I think will be effective on stage.

The "A" is a similar trade-off. You don't have to use a four-die LED, but for a lot of theatrical applications having a dedicated amber channel will really improve the effect.

2) Custom PCB. I want it compact, and as cheap as possible, so it doesn't make sense to use Arduino compatibles, shields, adaptor boards and/or breakouts, and all-in-one LED drivers (like the BuckPuck). A PCB brings everything together in the smallest and most economical form-factor.

3) AA batteries. Basically, I'm assuming these are theatrical effects, not static displays. Meaning they are only operated for minutes at a time, the length of an Act at most. Theaters with wireless mics already have an established routine for swapping out AA batteries (rechargeable, or bought in bulk). And their power density is much better than coin cells or 9V "transistor batteries."

Sure, Lithium polymer have even higher density, and smaller sizes (as well as higher voltages), but I think the tradeoff in being able to send it out on stage with known fresh batteries far outweighs the simplicity of onboard recharge.

And that restricts me practically to wanting 3 to 4.5 volts base (and, actually, lower, because of voltage drop over use, and of course rechargeables are lower voltage to begin with).

4) XBee socket. It just seems the simplest way to integrate remote control; the XBee is demonstrated as getting a clean signal at stage distance, and the serial communications are really easy to work with. I've used XBee-and-Processing systems on stage, in actual productions, so I'm willing to put up with the size and cost of the modules.

And using a third-party breakout just multiplies the cost and size. However, I won't rule out having my own add-on board or a breakaway tab.

5) ATtiny or through-hole ATmega with ICSP programming header. The reason here; I just don't have the time right now to learn the USB stack, so as to be able to program via a native USB port.

I also think there's a natural division; assuming I can get this into kit form, most end-users are going to operate through the presets and the Processing ap I mean to write. Those users who want to write custom software into the light, are the kind of users who have an FTDI cable or similar lying around.

I could be totally wrong, though. Which brings up a real question; does it make more sense to do the entire thing as a shield, designed for compatibility with a Micro, Teensy, or Trinket? It is a question of whether adding the cost and footprint of a daughterboard for the CPU is worth having some-one else's well-tested USB bootloaders.

The ultimate trade-off is still; can I make something small enough and cheap enough and easy enough to use? Because you can always wire a Cree straight to a set of batteries with a ballast resistor and a simple switch. All of this added cost and complexity in setting up is just to achieve custom color mixing, the ability to animate, and the ability to add remote control.

Argh. I just discovered buck and boost converters require a minimum voltage difference between supply and output -- 2.5V in several of the ones I was looking at. The forward voltage on RGBs of the single-die kind ranges around 3v. That's pretty inconvenient for wanting a power supply in the 3V range! Maybe my test board should just be tip120's and 2-watt resistors after all...

Saturday, August 9, 2014


Yesterday was the worst. Today I'm almost normal again.

Just in time, too. Started a little cleaning around the apartment. Will never get that brand of biodegradable trash bags again. I don't know about "bio," but they degraded real good. All over the floor. I was cleaning up from that when I noticed the sink sounded "funny." Right. Water everywhere, and I couldn't mop up properly because, you know, sink. Repaired that, then cleaned up. And repaired some outside lights. And that was enough for me.

I've been trying to "break" Tomb Raider now. It turns out to be almost impossible to get your first advanced combat skill before meeting your first "boss" (just one of the guys with the shields, but a great introduction for him.) However, if you hunt out all the areas you can fast-travel to, and pick up everything, and get as many extra points as you can from head shots and finishers...and if you also do the DLC tomb back in the woods before you rejoin Whitman...then you can just barely have axe strikes by the time you hit the big fight before the tower.

Of course you could also purchase a couple of skills via DLC. But that feels even more like cheating.

And, no, you can't grind on deer, or respawns. The Solarii don't seem to respawn, and regions that are hunted out take longer to recover than the time it takes to get to the tower. I was even potting rats (and crows) in the more sparse levels, and you just can't pick up enough experience points to skill up any faster.

As several reviewers have pointed out, the game really loves the bow. In a number of places, a quicktime movie dumps you into a fight -- and pre-selects the bow for you even when it isn't the optimal weapon. Now, I do love the fire arrows, as I mentioned before. But I've been finding my go-to weapon is the pistol. I prefer to work at medium range, and if I stay calm I can get head shots in. If they close, a shot to the body to slow them down, then axe strike. The bow is still superior for long distance work, of course. However, relying on the pistol so much has revealed that pistol ammunition is in very short supply. Particularly later in the game, when it seems to expect you to use the rifle almost exclusively -- cans of rifle ammo are everywhere.

Speaking of..  I got through the rolling boulder bit in Legend. Most annoying gameplay ever. Almost as bad as the QTE's. Here's the problem; Legend insist on showing you the boulder from a nice cinematic angle. It releases control back to you -- and does a snap-cut to your camera angle -- about a millisecond before the boulder hits. So you've got to re-orient to where the camera is now, and get her running in the right direction. Actually, you can't even do that. The boulder is too fast to allow you to rotate. The only way through turned out to be to hold down two movement keys through the quicktime movie. The moment control was restored, wait a split second then release one movement key. At that point you are finally where you can make the first jump. Of course the next move is behind scenery, and at an angle to the camera. And you can't even look for the gap before the scene; the moment you are close enough to study the trap, the movie triggers.

I think I died forty times before I finally got through it.

My circuit is also going as frustrating. There are very nice regulators in chip form. But they fall into two general styles; current-regulated LED drivers that require higher input voltages than I can get from the batteries I want, or boost circuits that aren't designed for PWM.

I've got a couple compromise versions, though; regulators that will run on as low as a pair of AA batteries, with PWM. The limitation being the biggest of them is only a 400ma. Which means I can't swing more than a 1-watt RGB (or RGBA) out of them. I was really hoping to get a 5-watt design out of this.

Do you know the lightsabre builders are now up to 15 watts?

Friday, August 8, 2014

Tetris Effect, and other distractions

This is an annoying week. Three or four times a year an anemia hits me. It can linger for almost a week, and nothing seems to make a difference; exercise or sleep in, eat or change diet, medicate or ignore. You know what it feels like after significant blood loss or trauma? Or the first few minutes after giving blood at the blood bank? Try feeling like that all day. Hard to get much done.

I've torn apart a third-party model in the process of making it printable. I think I have an airtight base mesh now. The next challenges are getting the thicknesses to where they can be practically printed in 3d (not too thin, but also not to thick -- because you pay for every CC of material you use).

Also struggling with the engineering of my Prop Light Source, or whatever it is I'm calling it. Basically an Arduino-compatible integrated with driver circuitry for high-power LEDs. How this is different from anything else out there, is most of the existing lighting solutions are smaller -- in the 20-40 ma range. For theatrical use, I need the 3-10W range. (aka 750ma and up). 

I'm looking at lots of data sheets now, and there are some very nice off-the-shelf constant-current drivers, but they are all designed for larger voltages (typically 16V) And it seems cleaner to instead use boost power supplies, which are also available in convenient packages with minimal external components. Or...I could build my own, using the PWM outputs as pulse sources, but I'm just not a good enough engineer to figure out current detection and limiting loops on my own.

And since I'm feeling so sickly, spending a fair amount of time just reading archaeology blogs, or playing Tomb Raider. Going through Legend now. Which after the quality of the models and controls of the later games is a bit of a hurdle. Combat feels particularly awkward, especially as there is significant animation lag when you try to jump out of the way of something (as in, she goes through almost half a second of "gathering my legs under me preparatory to jumping" before she actually jumps). 

I'm seeing ledges around town now, just as I spent a while seeing portal-able surfaces. The most noticeable Tetris Effect for me, though, tends to be collectibles. I'm seeing arrow reloads and salvage boxes everywhere. Just as during Half-Life I'd see supply crates around town. 

The way I think this works, is; after you've been playing for a bit the power-ups get put in hind brain. Your attention is on plotting routes, tracking enemies, and so forth. Your peripheral vision is scanning all the while, applying hind brain pattern recognition to the memorized shapes. And in those odd moments when you aren't actively jumping or shooting, you run over the ones you spotted to pick up a few more points from them.

It is the very low-level, almost-instinctual level at which you put this that makes it stick with you outside the game.

Tetris Effect also refers to thinking in game terms, of course. Classically, in trying to manipulate sofas and house guests in your mind to see how they might stack. (One suspects that Douglas Adams might have been playing a lot of Tetris when he wrote the first Dirk Gently book...?)

And I can't say I've consciously noticed any of this. The problems and solutions of the games I've played are both so contrived, and so alien to every day experience, there doesn't seem to be any cross-over. Which is jus as well. I'd hate to have my instinctual reaction to meeting a stranger to be swinging an ice axe at their head!

As a sideline, the puzzles in Tomb Raider 2013 are quite nice. But on replay, you remember most of them (worse, I watched a bit of a run-through while deciding if I wanted to try the game, so I never got the chance to address some of the puzzles as a completely unique challenge). 

Combat takes such primacy in many games because there's enough variation in what you can do, and enough emergent behavior in the AI, to make it fresh (fresh within limitations, that is). And it is relatively easy to add more, once you've established the meshes, combat values, and AI.

As physics engines are getting integrated, more physics challenges are also available to break up the monotony of doing the same challenge the same way. These are all aspects of a multi-body problem; add enough elements, and the possible variations becomes staggering. Whereas most puzzles -- and most platforming -- has only the specific alternatives the level designers put in.

I believe that the Tomb Raider games do not have an overall physics on their universe, not when it comes to climbing. That is, no part of the engine analyzes edges to see if it is possible for Lara to cling to them. Instead, every actual climb-able element is painted in on the level map. So, arbitrarily, one raised brick could be a hand-hold, another not be. The better Tomb Raider games provide enough of these surfaces that there is more than one route to each goal; that breaks things up a bit.

But it still becomes largely rote. So far combat -- and driving -- seem to be the major ways to let the level itself generate fresh play. Everything else is scripting, and limited by the patience of the level designers and the budget of the game.

Monday, August 4, 2014

The Curse of Meredith Wilson

Just closed a show. Written in the past few years, it shares that same curse; at least four major songs that have overlapping parts.

When I realized that these sections almost always repeat existing material instead of introducing new material, I started mixing them as a round. Each time a voice is added, I bring them up just slightly until the listener has had a chance to recognize the line they are recapping.

For instance; the last part of "Who I'd Be." FIONA enters with "An Ogre always hides..." and then continues on with a reprise of "I Know It's Today" from earlier in the act. I ride her until DONKEY joins with "You need a pal, my calendar's open" from his first song, and then pull them both down level with SHREK who is reprising "I guess I'd be a hero" from the top of the song.

This is subtle (or is when my Zen is on) -- a dB or two either way. This is imposed on the larger fader moves that are already there; our DONKEY tended to belt his first words, while SHREK and FIONA fell in energy on a more gradual (but still marked) pattern through their verses. Plus there are four distinct boosts in the overall song level, with the last being a 5-dB crescendo on the orchestra over the last chords.

It seems like a way to make the Meredith's a little easier for the audience; push the unfamiliar material until it is comprehended, then return to balance. Pretty much what you do in strictly orchestral situations, where you enter a new instrument or line just a tad hotter, and pull it back in through the verse once it is established.

But I'm starting to feel this is re-arranging deck chairs on the Titanic.

I'm getting good responses from the audience, even the unfortunates who are seated directly in front of the drums. But I feel like I need to step back, question some of the assumptions I'm making, refresh my ears and try some different approaches.

I'm reinforcing basically flat field, single point now; the system is tuned up as a mono system that covers the entire seating area with relatively equal volume (due to a balanced system of fills and satellite speakers on carefully tuned delays). And all the material is sent to it -- including SFX; with the presentational style of most of the Playhouse shows it seems appropriate to treat them as part of the musical material and not as strongly localized effects.

That, and it is a real pain trying to reinforce a localized effect (aka, a practical speaker inside an on-stage prop) when the rest of the sound is very much not inverse-square fall-off. I'd have to push effects into the satellite speaker system on a unique delay, and that's just a pain to try to balance.

The general theory is that the reinforcement simply bulldozes over any direct contribution (such as backline leakage from the pit, or random stage noises). But conversely, the magic center is when the direct sound pressure from the actors adds that extra localization cue for the people sitting closer to the front (back in the rear, the angle between speakers and mouths is acceptably small).

And that means that I don't actually have an infinite capacity to blow over too-loud drums or other unwanted noise. The design works best when the contribution from the live orchestra, wanted on-stage noises like tap shoes or un-mic'd actors, and of course the singers themselves, can be heard contributing actively to what the actual audience member hears.

Add to this, I'm mixing from the back of the house. So I'm having to guess at what the majority of the audience is experiencing.

So I need a re-think. I want my assumptions checked. I want my ears checked! I'd also like to see some other shows, although (perhaps in some sort of mis-cued attempt at an attaboy, people mostly tell me about how bad the sound was at the last venue they were at). I am starting to feel strongly I am making some basic mistakes, and I want to move forward.

Saturday, August 2, 2014

Drum party in the tomb

Random thoughts over the (loooooong) closing weekend.

We had another sub in the pit, and a couple of technical issues, and this underlines: there is something systemically wrong about how music is done in music theater. Our Music Director calls it a problem of musician culture.

Musicians are called for a "service," which works out to pretty much the length of a performance, plus whatever bare minimum to get their butts into their seats and unpack their instruments. This is why it took three weeks to get the musical to start sounding like a musical instead of a bunch of uncoordinated noises. There's no time; no time for rehearsal, no time for brush-up or warm-up, no time for sound check -- not even enough time for notes. I don't even see the orchestra until five minutes before the house is opened. It took us two days just to add a ukulele to the pit, and it would have taken a week more to get it integrated into the score.

With these sorts of time constraints, reinforcing a pit orchestra is not like sound check for a band. It is more like working at an open mic. The band walks in and they start playing, and if the mics and monitors aren't right, then oh well. And the audience suffers along with everyone else, because there's no time available to fix it. Not in tech, and not during the run.

Drummers. I think I know where our current drummer is. He's got a good balance when he tries; between the different elements of his kit, and between him and the rest of the band. But I think he is feeling constrained, if not put upon, while doing this. It isn't easy to play with control and play softly, not without practice, and since most music directors have simply given up on even asking they don't get that practice.

(After many, many poor experiences, I don't bother telling drummers they are too loud. Telling them never fixes it, and often makes things worse).

So since this is unnatural (in his mind) he's welcomes the moments -- louder songs -- where (again, in his mind, and only in his mind) he can relax and play the way he is used to.

Which sounds like shit, by the way. Not just too loud for the mix, and too loud for the space, but poorly balanced internally. His cymbals overwhelm everything else, and don't even sound like they are in time. So it is just a wash of white noise with very little musical content, and practically none of the good tone his kit has available.

I suspect to him, these are the moment when he is actually "allowed to play drums" and the rest of the show, he is putting up with something he considers wrong and awkward because he doesn't want to lose the gig.

Which means there is no hope in hell of him internalizing the necessary lesson, and no point in anyone trying to educate him. And the pity is, over three quarters of the drummers out there get the same free ride borne of the people around them just plain giving up. Leaving only a few rare ones who see themselves as members of a band.

(I really, really expected him to cut loose on closing night, because I've had that happen before. He didn't. Oh, he came up a little overall, but he was already playing close to peak in other moments, so the impact wasn't bad. And I made it a point to break my rule and thank him after the show for not going there as so many have before.)

Another cast get-together at night, at a noisy ice-cream place. And, sure, I'm missing the networking by being there. People hire people they know. Having your face out there, being seen out at the parties and opening nights and so forth, that's a job skill. But it is one I'm poor at, and I suspect a lot of techies are poor at.

Because conversation in a crowded room is a specific skill. It requires wit. You need to be able to adjust quickly, think on the fly. It is social skills, not language skills. And techies don't cultivate grooming skills. They cultivate knowledge, and knowledge can't be communicated in tweets. When techies size each other up, it isn't done with a couple of words and looking each other in the eye. It is done with a flurry of challenges and concepts and thought problems. Techies socialize over blueprints.

Different skill set. Different interests. Different comfort level. I should probably still do it, but there's an equal chance all I'd communicate to possible employers is, "Uncomfortable around others." If not an absolute bore (the kind of talk a techie likes, is the kind of talk that at a party is the guy who corners you to talk about their bird feeder for twenty minutes.)

Yes, I'm ragging on Tomb Raider 2013. And, yes, I'm in a sister industry and I understand how a lot of design decisions are not carefully weighted, carefully discussed, deliberately taken options. I understand how history can weigh on a project ("This isn't right, but we spent half our budget on it and there's not enough time before opening to re-do it.") And similar sorts of extraneous and often invisible forces that caused certain choices to be made.

I've also studied enough game design (was a Gamasutra member, read the trade mags for a year or two, and a handful of books on design as well) to understand there are subtle trade-offs being made. And, yes, what I think I'd want to play, may not be what the good and careful marketing research and playtest groups showed is what the larger customer base wants to play.

That said, more ragging.

I've been doing some skulking on my "Role Playing" pass through the game. The one where I try not to game it, but try to react as I think Lara should be reacting at every moment. Which includes running pell-mell into tight situations when Sam is in immediate danger, rather than take proper care.

But anyhow. I've been making an effort to bypass, or to talk to, the random encounters with smaller groups of Solarii. I've also been listening to their conversations more. I've yet to find a group I can actually bypass completely. The developer who said you aren't forced to fight them -- he was a total liar. They WILL spot you, and if you try to run past, they will shoot you right off your zip line.

And as for listening...

It's great that they have all these little stories. I can't fault the variety of the NPCs, especially given that they are specifically a limited selection pool; fit and physically tough, amoral and brutal men who were picked out by Mathias (and could survive his selection process). There is a surprising variety in voices and models despite this.

However. About half of the conversations end with them moving to where they have you in sight, if not surrounded. If you insist on listening to the entire conversation, you are much more likely to get killed. Once again, the gameplay is at odds with the story-telling. From a story-telling point of view, what they have to say is important. From a gaming point of view, you should kill them the moment they are in range.

Friday, August 1, 2014

Escape Velocity

Since I seem to be writing game reviews, well, here's an oldie but goodie from the Mac shareware side (the final game in the series was dual-platform).

The original 1996 game was the solo creation of Matt Burch, who programmed, wrote, created the content, etc. It wasn't the simplest game to mod, requiring editing resource forks among other things, but even before third-party editors came out people were writing mods. The mod community is still going strong, with some of their efforts more extensive than the shipped game (and in the case of Escape Velocity Nova, Ambrosia Software hired the mod team and they were the primary content creator.)

The game is a hybrid open world game; trading, role playing, combat. You play a single pilot, represented on-screen (in a 2D star map) by the ship you are currently flying. The trading takes place between different worlds, where you can either chose to accept cargo missions being offered to you (which have a higher return) or purchase bulk commodities yourself and try to find a market elsewhere. Very early Andre Norton in feel, there.

Pirates and other hostiles may attack you en-route (plus, some systems are being hotly contested by the various political factions and you can get caught in the crossfire.) Which brings in the combat; you can chose to arm your ship and defend yourself, which extends right up through taking bounty hunter missions to becoming a pirate yourself.

And, lastly, there are the major threads. These operate via the same mechanics; jumping from system to system, landing on worlds and getting the landing blurb, interacting in shipyards and bars (aka, you click on the "visit bar" button and you may get a dialog pop-up, with a fairly primitive dialog tree), taking cargo, and of course fighting.

What makes the major threads different is that they present a developing story, and the scripting allows the world to change in response. You can agree to smuggle a few parts for the Rebellion, you get access to world that you couldn't land at (or perhaps, that didn't even appear on the map), abilities to purchase new ships, and eventually you are sent out to take part in massive fleet engagements. The traffic around key worlds, the description when you land, even the image of the world in the map, can all change as the story develops.

Because of the open-ended nature of the world, you can of course game this a little. In Escape Velocity Nova, one of my usual methods with a new character was to find my way to this little Irish world full of mercenaries and Guinness and in need of medical supplies. Which meant a relatively safe four-jump bulk cargo route between them and Sol was profitable to almost 200% of trip costs.

So I'd run bulk cargo until I could afford to start hiring more hulls, run that until I could upgrade my own ship, hire more hulls again, geometrically progressing until (if I hadn't gotten bored already) flying back and forth with six Leviathan freighters.

At which point you have the cash to make a really good pirate-stomper. I'd then go lurk in the nastiest systems smashing and boarding pirates (and, with a lot of luck, capturing their vessels to add to my new fleet of combat vessels). And running up my "combat rating." Because many of the important plot hooks will not be offered to you until you've got a decent reputation as a fighter.

And, yes, unloading eight Auroran-built railguns that you've strapped all over the hull of a converted freighter at some poor pirate Manticore will get you that rep nice and fast.

Nova, the last remake, improved the graphics and other options in a number of ways. The ships (and other 2D map objects) are represented by sprites; pre-rendered top-down images of the ship, one for each facing you can take. Nova improved this by adding alternate sprites for banking, engines on and off, weapons live, and simple animations. Nova also added custom HUDs for each ship, and the ability to customize the landing screen quite a bit.

Unfortunately, the ATMOS group also wrote their six core scenarios (the major world-changing plot threads) in a way that is often ridiculous, rather railroading, and basically takes play out of the player's hands. You get told what you did as often as you get to actually do it, and what you told is often hard to reconcile with your mental image of your character. This is not helped at all by the fact that over half of the scenarios have some sort of messiah complex built in. You become a virtual god in at least one.

Fortunately, there are extensive mods, called either "plug ins" (for smaller ones that fit within an existing game) and "Total Conversion" plugs that remake the entire game. One -- which I've unfortunately forgotten the name of -- presented a poetically realized story of lost memory and rekindled purpose. And had some clever and unique game mechanics as well.