ASL Decision Tree Program Begin if no more sign-segment end program. execute Body(sign-segment) String along (sign-segments) return sign Go to Begin. Body If sign-segment is 2-handed if hands touch if handshapes are different identify right and left handshapes else handshapes are same identify handshapes else hands don't touch if hands alternate motion if handshapes are different identify right and left handshapes else handshapes are same identify handshapes else hands simultaneous motion identify handshapes since ASL rule says the handshapes must be the same Else sign-segment is 1-handed identify handshape. Find endpoints of motion: If endpoint is on the body else endpoint is in neutral space. Compute overall direction of motion according to the x, y, z axises. If motion is oscillating if motion is curved if arc is looping identify sign-segment else arc is circling identify sign-segment else arc is bouncing identify sign-segment else arc is waving identify sign-segment else motion is straight if line is zigzagging identify sign-segment else line is pointing identify sign-segment else motion is curved identify sign-segment else motion is straight identify sign-segment else motion is still identify sign-segment. End Body. Identify handshape routine. If ring finger is open if middle finger is open if thumb is open if pinkie is open if index is open if handshape is spread, handshape is 5 or classifier rough surface else handshape is not spread handshape is classifier smooth surface else index is closed handshape is meaningless else pinkie is closed handshapes are difficult to make, see below if index is open handshape is difficult to make else index is closed handshape is difficult to make else thumb is closed if pinkie is open if index is open if handshape is spread handshape is 4 else if handshape is not spread handshape is B else index is closed handshape is 9/F/baby-O else pinkie is closed if index is open if handshape is spread handshape is W else the handshape is not spread handshape is flat M else index is closed handshape is difficult to make else middle finger is closed if thumb is open if pinkie is open if index is open handshape is the feeling finger else index is closed handshape is meaningless else pinkie is closed handshapes are difficult to make, see below if index is open handshape is difficult to make else index is closed handshape is difficult to make else thumb is closed if pinkie is open if index is open handshape is 8 else index is closed handshape is meaningless else pinkie is closed handshapes are difficult to make, see below if index is open handshape is difficult to make else index is closed handshape is difficult to make else ring finger is closed if middle finger is open if thumb is open if pinkie is open if index is open handshape is holier-than-thou else index is closed handshape is meaningless else pinkie is closed if index is open if handshape is spread handshape is 3 else handshape is not spread handshape is meaningless else index is closed handshape is a variation on flipping-the-bird else thumb is closed if pinkie is open if index is open handshape is 7 else index is closed handshape is meaningless else pinkie is closed if index is open if handshape is spread if handshape spread has a differing gradient handshape is K/P else handshape spread does not have a differing gradient handshape is V/2 else handshape is not spread if handshape is crossed handshape is R else handshape is not crossed handshape is H/U/flat-N else index is closed handshape is flipping-the-bird else middle finger is closed if thumb is open if pinkie is open if index is open handshape is ILY else index is closed handshape is Y else pinkie is closed if index is open if orientation is vertical if index points up handshape is L else index points down handshape is Q else orientation is horizontal handshape is G else index is closed if thumb is between ring and pinkie handshape is M else thumb is between middle and ring handshape is N else thumb is between index and middle handshape is T else thumb touches radial side handshape is A else thumb does not touch radial side if fingers are half-bent at the fingerjoints handshape is C else fingers are clamped handshape is thumbs-up else thumb is closed if pinkie is open if index is open handshape is BS else index is closed if handshape has motion handshape is J else handshape does not have motion handshape is I else pinkie is closed if index is open if handshape has motion handshape is Z else handshape does not have motion if fingertips touches thumb pad handshape is D or baby-D else back of fingers touches thumb pad if index is half-bent at the fingerjoints handshape is X else index is straight handshape is 1 else index is closed if fingertips touches back of thumb handshape is E else fingertips touches thumb pad handshape is O else back of fingers touches thumb pad handshape is S.