RC Diary; day 1

I decided to try something new, and since it’s actually pretty challenging, write down my findings a bit so it might help someone else one day.

I’m trying 2 things;

I received the quadcopter yesterday. It’s clear this stuff is definitely not a toy, the Devo F4 transmitter (tx) is a pretty complicated device by itself already.

So my first thoughts after flying it;

It is super-sensitive! The slightest input sends it flying, resulting in numerous crashes indoor. On the 8th or so I broke the motor mount from a 2m high crash and fall.

DSC08244Above you see I glued it with JB-weld, I might put a tie-wrap around it as well. I think one of the front booms is split too, I might try replacing it by a metal one if the weight is acceptable.

After fixing that, the quad would spin(yaw) around madly. I really had no idea what could have caused it; perhaps a weight imbalance, a twisted boom or a mis-aligned motor. Eventually I found out by reading online a bit; Clock-wise and Counter-clock-wise motors sit diagonally aligned with each other. Yaw is achieved by having either the CW or CCW motors speed up and take over from the other ones.quadcopter-rotating

I had accidentally swapped out the two tail booms, messing up the CW-CCW alignment.

Another thing I learned from reading online, is that you can adjust the ‘rates’ in the Devo F4 Tx. This was never explained or mentioned clearly in the manual. But it can be accessed though Menu > Function Menu > Dual Rate. There you can set the maximum possible input, making the whole thing a lot less sensitive; it really makes a difference. Recommended in Rams’ topic on RC groups is around 20% compared to the original 100% The idea is to set up two-sets (hence the dual) of sensitivity setups, 20 for indoor, 55 for outdoor. Once you get better, you increase this. At least i hope so…

Additionally, I have barely bothered with the FPV stuff as learning to fly is hard enough by itself, and staring down at the screen is pretty difficult if you don’t master the controls. Perhaps I should’ve bought a non-FPV version to start with, though that comes with a much simpler controller that doesn’t seem to allow dual-rate… I’m thinking FPV without goggles might be too difficult, so I’m thinking about getting Fatshark goggles; cheap Teleporters or expensive Attitudes, i don’t know yet.

Additionally I ordered a slightly better antenna and lens as recommended by Ramsey in his topic; the default FOV on the camera is pretty tight, too tight to get a lot of awareness I think. The range is also supposedly not great with the default antennas.

That’s it for now!

Future Xoliulshader support

I keep getting reports about XoliulShader 2 not work properly in max 2013 and Max 2014. This is a known issue. In short, this is the response:

Autodesk has completely broken shading in Max 2013 and 2014. I can not and will not fix this. You should go back to Max 2012 if you want the optimal XS2 experience.

Now some technical details for those who wonder.
Autodesk has been working on their own Viewport Display Driver to replace the (admittedly aging) DirectX9 renderer. This new Nitrous driver is their main focus, and has broken support for my custom shader.

Autodesk’s focus on Nitrous has resulted in bugs being introduced in DirectX9 for Max 2013 which are of yet unfixed for 2014. I have informed the Product Manager for 3DS Max, Frank Delise, he acknowledged my reply and would pass it on, yet no fix has happened.

The problem specifically is that tangent data is no longer passed to shaders by the application in DirectX9 mode. When displaying the tangent data as color, this image by Nico Ulbricht shows the problem (same debug shader in both versions of Max):

As is clearly visible, Tangent data is returned as a constant for the entire model. This results in incorrect shading.

Now, the worst part about all of this is that it does not just break external shader support; the problem is also visible when using the standard, built in “hardware display” shaders, a core feature of Max, created by Autodesk themselves. I can only guess that DirectX9 development has completely taken a backseat these days…

Custom shaders do seem to work to some degree in Max 2014, I will investigate this and see what is possible. For now, my shader does not work properly with it.

Borderlands 2 Nerf Hyperion Spectre

So the Borderlands 2 guns look amazing. I found the Nerf Spectre, which is a bit of a rare gun, to match well with Hyperion’s angular shapes. The yellow and black scheme has turned out fantastic, this is definitely a step up from all the previous guns.

I might do a few more Borderlands 2 inspired guns…


Nerf Brink Ritchie

I’ve been doing a few more Nerf guns. This Ritchie revolver based on the Maverick is a few months old. I’ve been using this a lot at work!

Quite happy with this, tried some new techniques and they worked very well. I’ve perfected them more in the guns that were made after this one.

The Car

A thread on polycount made me dig up my first model ever. Early 2006 I think.


Not all that terrible looking at it now. I had spent a few months converting existing GTA:SA cars to Crashday before I attempted this, I had even already learned to UV when I had to redo textures on some cars (I remember manually painting Ambient occlusion once LOL).

Chibi Levin

I made a Chibi Toyota Corolla AE86 Levin GT-Apex!

To be honest, I think this is my best car so far…

MaxScript Render To Texture with Projection

This is a blog post written from utter frustration. I’ve spent way too much time trying to get RTT in max working with projection, and finally found the issue that was stopping everything.

The problem is that I kept getting useless bake results: a (red) wireframe, and not a proper bake!
I’d checked the help dozens of times, trawled all the forums,etc… Nothing helped.


Now after rebuilding the code again, I found the issue:

the INodeBakeProperties have almost nothing in the way of proper default settings. You have to explicitly set a few things, if you don’t, it doesn’t work without any explanation why.

Take the following sample code:

--set up bake properties

bp = obj.INodeBakeProperties
bp.bakeEnabled = true
bp.bakeChannel = 1
bp.nDilations = 1

This is the key piece of code. If you don’t set bakeEnabled, it won’t bake. Easily overlooked. Bakechannel I’m not sure of the default, but you most probably need to set this explicitely. nDilations was my problem: this is the “edge padding” value: not explicitely setting it results in useless bakes! There is not a single warning on this in the Max help anywhere!

bp.removeAllBakeElements() --clear all to be safe and clean
dbe = DiffuseMap()
dbe.enabled = true
dbe.outputSzX = 128
dbe.outputSzY = 128

dbe.filenameUnique = false
dbe.elementname = "test"
dbe.filename = "C:\\"
dbe.filetype = "test.tga"

bp.addBakeElement dbe

For completion’s sake, here’s the rest of the essential code. The Bake elements have VERY generic class names such as “DiffuseMap”. They have to be enabled explicitely again.
The filename and filetype properties of the bake element are again very important: failure to set these and your bake element will not be able to create a bitmap. You’ll get a non-descriptive “Error Creating Bitmap” message. It doesn’t actually save them to that location though…
Also, very important to note: Edgepadding, or the ndilations value, is not applied when you set just “.tga” as filetype. If you set “filename.tga” it will apply them. The actual purpose of filetype vs filename is very vague and unclear.

Hopefully that will help out anyone who’s running into this same issue!

BT2 Build-a-Tank

Wargaming.net is having a competition that’s even more up my alley than 3D modelling! You’re supposed to build a real-life model of your favorite tank.

I picked my little BT-2 in fall camo since I always have the most fun with it ingame. I decided to just scratchbuild it from wood and do the interior as well, to set myself apart from the competition.

Here are some pictures I took yesterday:

And here’s the entry video, showing the build process:

Fingers crossed I win something nice!

I got first place! Sweet!


Its been years since I did actual game-like programming, but thanks to Rafael at work who told me about Flixel and using Actionscript to get started. I never knew it was this easy, I thought you needed to know flash and all that, but it really is a lot like the 2D C++ “GameEngine” I learnt to program with in university. Only much easier, faster and less limiting. I’m not saying C++ is slow and limited, but for someone who codes for fun, I couldn’t care less if c++ allows more control and all that.

So here’s what i came up with so far:


It’s the start of a spaceship game that should have everything random generated (well except for the names). I based the spaceship generation code on Dave Bollinger’s PixelSpacehips. (site’s dead, hence wayback). Keep refreshing, it’s different every time! It also cycles between 5 types of country naming types, US, Japanese, Russian, German and French (it’s so fun coming up with the names).

Plus, I just found out you can do shaders in Actionscript, so now I can manipulate graphics faster and even easier!

BRINK Nerf Stampede

I just finished my next BRINK inspired Nerf gun. This time it’s an assault rifle, created from a Nerf ECS-18 Stampede.

I was inspired by the “Gerund” AR, it had nice contrast between green, yellow and orange. The fish drawing was cool too.

I never tested if it shoots, since it requires an insane amount of batteries. (6 D-type)

It feels like a big improvement in technique, which is exactly why I did a smaller gun first.

It’s got a working Red Dot scope where the carrying handle used to be (I cut that off).

The band-aid was taken from an early concept by LD Austin that didn’t make it ingame in that form.