In some ways, this arm is pretty simple: it's just a bunch of joints driven by stepper motors. The basic design directly follows the PUMA architecture, and everything follows from there. There's just a lot of slow design work figuring out how to squeeze everything together, work out motor torque requirements, gear spacing, and eventually, wire routing. I was surprised when I didn't find any well-documented (and finished) builds of things like this, so I decided I'd take a crack at the dirty work of wringing all of this out and putting out a plan for others to replicate my work.
The real tricky stuff comes in controlling the arm. I've used LinuxCNC for about six years on a variety of progressively-larger machines up to the Tormach PCNC 1100 I have today, and it's been successfully used to drive a variety of non-Cartesian kinematic mechanisms. In theory, it only needs some relevant configuration (namely, the Denavik-Hartenberg Parameters) and it can solve the inverse kinematics problems so that the user can order the arm from position A to position B in "world coordinates" and LinuxCNC works out the joint positions and moves the arm. That's the goal at least.
Then there's the gripper. If I knew what I was doing, I'd have known that gripper design is in fact a whole discipline within the robotics field, and that a gripper is really its own self-contained robot. I settled on a parallel gripper as the starting point, since it can pick up and put down a wide range of objects, but in principle any end-effector of appropriate size should be workable.
Mostly, the goal for this iteration is just to get everything minimally working, and then start identifying weak points and areas for further refinement.