I wrote the software myself sir. It's not trivial to use, but it's not impossible to learn either. I released previous versions as Open Source, but the most recent version I have so-far kept as Closed Source. (I have a good reason that I can't get into here.) There are a few people that I have given licenses to for the most recent version; we can discuss a no-cost arrangement in a private message if you'd like. (I'm just trying to limit the redistribution of the source code -
bidness reasons)
The software is basically just a library of modules within the open source CAD program called OpenSCAD. What looks like a bunch of taekwondo figurines is actually just a bunch of deformed cylinders and spheres. That's why it doesn't look entirely realistic -- it's merely "good enough" for a poomsae diagram.
For example, to tell the software to render a green figurine performing a low block in a long stance, you'd simply type something like this:
- left_long_stance("green") left_low_block("green");
This is what the entire code for the form
Taegeuk Il Jang looks like:
joonbee("gold");
position_DA1(1) DA() { left_walking_stance("gold") left_low_block("gold"); } // 1
position_DA1(2) DA() { right_walking_stance("gold") right_punch("gold"); } // 2
position_RA1(1) RA() { right_walking_stance("orange") right_low_block("orange"); } // 3
position_RA1(2) RA() { left_walking_stance("orange") left_punch("orange"); } // 4
position_GA2() GA() { left_front_stance("green") left_low_block("green"); } // 5
position_RA2(0.60) GA() { left_front_stance("green") right_punch("green"); } // 6
position_RA2(1.5) RA() { right_walking_stance("green") left_inward_block("green"); } // 7
position_RA2(2.5) RA() { left_walking_stance("green") right_punch("green"); } // 8
position_DA2(1) DA() { left_walking_stance("indigo") right_inward_block("indigo"); } // 9
position_DA2(2) DA() { right_walking_stance("indigo") left_punch("indigo"); } // 10
position_GA3() GA() { right_front_stance("blue") right_low_block("blue"); } // 11
position_DA3(0.60) GA() { right_front_stance("blue") left_punch("blue"); } // 12
position_DA3(1.5) DA() { left_walking_stance("blue") left_high_block("blue"); } // 13
position_DA3(2.5) DA() { RIGHT_FRONT_KICK("blue",120); } // 14a
position_DA3(3.5) DA() { right_walking_stance("blue") right_punch("blue"); } // 14b
position_RA3(1) RA() { right_walking_stance("sienna") right_high_block("sienna"); } // 15
position_RA3(2) RA() { LEFT_FRONT_KICK("sienna",120); } // 16a
position_RA3(3) RA() { left_walking_stance("sienna") left_punch("sienna"); } // 16b
position_RA2(4) NA() { left_front_stance("darkred") left_low_block("darkred"); } // 17
position_RA1(4) NA() { right_front_stance("darkred") right_punch("darkred"); } // 18
...that might look complicated, but basically if you just type that into the software, it renders a complete 3D image of the poomsae! How cool is that?
After I render a complete diagram, I copy and paste the diagram into PowerPoint, and then use PowerPoint to add the text and arrows. For a form that I already know, I can create an entire diagram in about 4 hours. Double that at least, if I'm watching the form in a YouTube video to learn it (and even then, those diagrams tend to be not as good). For a beginner, I think it might take you about 16 hours to finish your first diagram, then it'd get faster as you learned the tool. It never becomes "easy" though.
A bonus application of this tool is that you can use it to render 3D objects for 3D printing. That's how I made this stuff:
Majest by Majest - Shapeways Shops
Here's a video that summarizes how the software works: