Monday, December 4, 2017

Ashley Goodenough : Capstone Part 2 "Anatomic"


This original concept for a below-elbow prosthetic device is called “Anatomic” and it’s rooted in skeletal structures and the idea of underlying connections.
 
I was strongly inspired by vintage anatomy illustrations while concepting this design. There’s a wealth of anatomical illustration out there, and all of it is strangely beautiful to me. I wanted to create something of my own design that let me express my version of anatomic illustration via 3D modeling, as well as my appreciation for the beauty of internal organic connections. I was not inspired by Attack on Titan, but was made aware of the anime recently, and I’m pleased with any comparisons that are being drawn. The art style is uncomfortably gruesome, yet gorgeous, and that’s what I’m aiming for. A couple of pieces that inspired me are from Elisa Schorn and Ant Baena, respectively:

Prosthetic devices for upper extremity amputees are much more complex than lower extremity devices. The technology needs to be more complex because of how much dexterity humans have in their hands, in addition to the twisting motion of the wrist. For the most part, this technology varies across the board depending on which company makes the prosthesis. On top of that, a lot of the internal mechanisms are hidden underneath a carefully designed shell to keep it safe. Here’s a good example of what it looks like inside a controllable prosthetic arm from Dean Kamen. The transparent design gives us a view into the complexity of the technology underneath the shell, and helps drive home the reason most of these prostheses are watertight: 
Therefore, it was an easy decision for me to go in the direction of a completely closed design. Examples of some closed concepts for below-elbow prostheses can be seen from BeBionic, ArmDynamics, and TouchBionics. 

Anatomic modeling process in Rhino:
I knew from the beginning that the most difficult part of this design was going to be the hand. Modeling a hand in a NURBS environment is a punishing process, and I did try it at first…but I ended up abandoning that route, as I thought I might eventually. I always have to make an attempt, even if it seems unlikely to work. My alternate plan was to create a polysurface that mimicked the form of a palm, but was a little more precise. I was semi-satisfied with the results, but also ended up abandoning this form, because there turned out to be a much better way I hadn’t learned about yet. For your entertainment however, here is the process I used for modeling the first version of the palm:
 I started by extracting the mesh of the arm from my Maya character model, and exporting it as an obj. After importing it into Rhino, I used MeshToNurbs to convert it to Nurbs surfaces, so that I could use DupEdge from the original model and use the resulting curves to Join and create silhouette curves. I used this method with the arm down to the wrist, and with the fingers and thumb. Then, using my concept art as reference from the front view, I created two parallel closed loops using InterpolatePoints curves. These followed the outline of a separate version of concept art I had on stand-by, and I used them as the front and back of the hand. Using cross section curves, I used Sweep2 to make a custom bridge between the front and back of the hand (I did try BlendSrf first, but the resulting surface was not as customized as I wanted.) I then used Bend to arc the hand from multiple views and give it an inward curve similar to an open palm.  
All that effort resulted in a decent palm that I felt only partially happy with. The best solution for me ended up being this: starting with a high resolution polygonal model of a hand (obtained via 3D scanning), import the mesh into RapidWorks, then transform the mesh into a Nurbs polysurface made up of a large number of Patch surfaces, which you can then Join and treat (for the most part) as a single surface in Rhino. There are limitations to this, since it’s not really a single surface (my main issues were in using FilletEdge and BlendSrf), but it’s preferable to trying to model a hand in a non-polygonal environment.
As I type this, it occurs to me again to explain the main reasons I prefer to model my prosthesis designs in Rhino as opposed to Maya. The answer is that Rhino is simply the better modeling environment for this purpose. Maya is a very strong software for animation (and the modeling and rigging that comes with it), but has some drawbacks when it comes to speed and fabrication. When I’m creating a prosthetic device, I can create surfaces in Rhino in thirty minutes that would take me much longer to create from a mesh in Maya. AND when I’m done, I can convert that model to one of an unreasonable number of file types which can then be sent to a 3D printer, or a laser cutter, or a water jet, or just about anything I want. So, I have a bit of a soft spot for Rhino, even if it sometimes makes my life difficult in regards to organic modeling.
Creating the finger surfaces consisted of designing complementary cutting planes that I would be able to Intersect with the patchwork polysurface, Rebuild, Pull, Rebuild, and then either NetworkSrf or Loft to generate cleaner individual surfaces that interlock in an offset position. ExtractIsocurve was very useful for modeling the detail pieces into the ends of each digit. I also used Rebuild on these curves, adjusted position of various control points, and used Pull to bring them back to the surface so they could be used for Splitting. For the skeletal detail in the front of the hand, I used Interpolate Curves on the surface, then custom radius Pipes, BooleanDifference, and FilletEdge.
The edge of the palm where it splits into two four fingers was achieved by creating a polysurface made up of the knuckle shapes I wanted. I created the base shape, then duplicated it and positioned/scaled them at each knuckle. I used Loft to connect them, then FilletEdge to clean up the connections. This final surface was used to Split the palm, and I then combined them with BooleanUnion.
The wrist wheel was created with a half-circle, a Revolve command, a base cylinder, and a BlendSrf. The detail in the wrist joint that creates the springy, flexible look was made using TweenCurves and then projecting them onto the wrist surface, Rebuilding, and then using Pipe and BooleanDifference. This transitional area needs to bend horizontally and vertically, so the wheel wasn’t going to create the second direction of motion. I liked the wheel aesthetically, so I kept it and combined it with the articulating wrist section.
The arm portion was quite simple to model, but it ended up being a very strong design, so I didn’t question the simplicity. I pulled curves from my original mesh arm using DupEdge, Join, and Rebuild, keeping the control point count equal in each loop. I scaled them flat in the front view. Then, I used Loft to create the initial surface, making sure the seam was even down the length of the arm. I readjusted this once or twice using SrfSeam to make sure it was in a convenient place. I then used OffsetSrf and BlendSrf to close the arm. I drew the skeletal curves using Curve Interpolate Points in the front view, then Projected them onto the arm surface, Rebuilt, Split, then OffsetSrf again on these smaller areas. Then I used Loft and FilletEdge to connect and clean up the edges.
The finger joints are simple spheres with rounded cylinders that rotate inside to create the finger hinge movement. I made one set, Grouped it, then positioned them in alignment with each digit using Orient. I used BooleanDifference to make them sit inside each digit snuggly. The ball joint for the thumb was modeled with a sphere and two cylinders that were nested inside and then BooleanDifferenced out. I capped off the inner cylinder to make it like a bolt.

Rhino tools I learned and used during this process:

SelBadObjects (used to find a bad object if you accidentally create one during a Save)

What (to verify what type of object you have selected)

ExtractBadSrf (removes and selects the portion of the object that’s bad)

ArrayLinear (an array that lets you specify a vector for the objects to go through)

VariableBlendSrf (creates a blend surface using intersecting surfaces with varying radius values, trims the original surfaces faces, and joins the resulting surfaces)

Smooth (a lot of Maya’s smooth command – it evens out the spacing between selected control points on a surface)

SoftEditSrf (like using Transform with SoftSelect in Maya)


Interesting commands I investigated but didn’t end up using in this model:

OrientOnSrf (moves an object to bend it and align it with a surface’s Normal directions. Kind of like a custom ShrinkWrap. It’s an interesting command that does similar things to FlowAlongSrf)

Splop (copies, rotates, scales, and wraps objects on a surface, like pottery sprigging or appliqué)

Twist (deforms objects by rotating them around an axis)

Maelstrom (deforms an object in a spiral)

ModifyRadius (changes the radius of an existing circle or arc)

Ribbon (takes a selected curve and turns it into a ribbon with surfaces)




Materials in Keyshot:
            To continue with the theme of anatomy and underlying structures, I used a very stark color palette made to be reminiscent of bone and tendon. The skeletal parts of the arm and fingers are a Metallic Paint in white. The joint wheels are an Axalta Paint in gun metal. The highlights are a combination of deep red metallic paint and cherry bomb Axalta Paint.


Here's a link to my presentation regarding this design, as well as Radiant (a transfemoral prosthetic device):

Here is a collection of reference images of prostheses, cosmesis, and general inspiration:




Companies I looked into for this project:
http://armdynamics.com/



No comments:

Post a Comment