The assigngment for this week was to model (draw, render, animate, simulate, ...) a possible final project, and post it on our class page. The goal was to try, but not necessarily master, as many different software packages as possible so that we have a better understanding of the available alternatives. I installed and tested a wide range of software packages for Windows, Ubuntu, and IOS. Some of the software was free and open-source while others were demo versions of high-end expensive commercial packages.
Raster graphic programs designed to simulate drawing with pencils, paint brushes, etc. I tried the Ubuntu versions of Tux Paint and GIMP. Both are free, open source, and run on multiple platforms (Windows, Linux and OSX). Tux paint is easy to use and well suited for young children. GIMP is harder to learn but far more capable. For example, GIMP can be used to crop, resample, and reduce picture file sizes for use on the web. I also tried MSPaint and Corel Photo-Paint. Microsoft Paint is a basic program that comes with Microsoft Windows. Corel Photo-Paint is a commercial Windows package similar to Adobe Photoshop.
Vector based graphic programs designed to simulate drawing with pencils, paint brushes, and more. I tried the Ubuntu version of Inkscape. Inkscape is free, open source, and runs on multiple platforms (Windows, Linux and OSX). In Windows, I used a commercial software called CorelDraw x5. Inkscape and CorelDraw seem similar in both ease of use and capability. I also tested a free IPAD app called Inkpad to see if the tablet interface helped. Inkpad was surprisingly easy to use and capable of simple design drawings. I found that my finger blocked the view of what I was editing or drawing making it hard to be precise. The tablet interface might work better with a stylus.
CorelDraw X5 interface
CorelDraw X5 drawing with dimensions
CorelDraw X5 color drawing
InkPad IPad App
Software packages like FreeCAD, SolidWorks, and Rhino allow you to make 3D designs. As the name implies FreeCAD is free and open source. Versions for multiple platforms are available. This is amazing because other similar commercial packages can cost over a $1,000. I have already used SolidWorks before so installed FreeCAD and a demo version of Rhino 5.
Using 3D software is complicated by the fact that most pointing devices and displays only work in two dimensions. 3D software is also more complicated because of the addition of the third dimension. Usually using 3D software involves lots of terminology like curve, surface, mesh, planes, NURBS, and primitives. In some software, you can draw using 3D shapes and use Boolean operations to make more complex shapes. For example if your design calls for drilling a hole in a block, you could draw a solid 3D box object and remove a cylinder object from it using a Boolean subtract operation. Another approach is to "sketch" in 2D and then extrude, pad, etc. a third dimension to make it a 3D object.
FreeCAD 2D sketch with dimensions
FreeCAD 3D interface (Windows Version)
FreeCAD 3D drawing
Animation software gives the ability to add motion to a design. This is useful for exploring different sequences or for demonstrating how something will work. Rendering gives you the ability to make photorealistic representations of an object from its design. The resulting rendered pictures often involve materials, lighting, and shadows to the extent that it is almost impossible to distinguish the rendering from a picture of a real object. Put animation and rendering together and you can make lifelike 3D videos of designs in action before you even physically make them.
Simulation software takes animation to the next level. It allows you to mathematically model how your design performs without physically making and testing it. You can simulate things like stress on a bridge structure, fluid flow through a manifold, aerodynamics of a car design, etc.
Blender is a powerful free and open source software for animation and rendering. Windows, OSX, and Linux versions are available. Unfortunately, I was not able to get Blender to work due to a video card driver or OpenGL problem I am having. I have however used Blender in the past. I was amazed by how powerful it was but overwhelmed by how hard it was to use.
Most of the time, all I need is the ability to do simple animation of 2D objects. I decided to try to find something simpler and better suited for my needs. I found a free Windows software called Vectorian Giotto. I used a method called tweening which is not related to twerking. In tweening you set up two keystone frames. The software then figures out what has changed between the two keystone frames and automatically creates all the frames inbetween. It was fairly easy to use and even creates Flash (SWF) animations that are good for use on webpages. I was surprised to see that the file size for the Flash video example shown below is only about 5KB.
Vectorian Giotto interface (Windows only)
Simple Flash animation created using Vectorian Giotto
Rhinoceros 5 is a commercial software package that allows you to "design, model, present, analyze, realize..." I installed the demo version that is fully functional but only lets you save 25 times. I was surprised that even saving a jpg of a render counted as one of the limited saves. Rhino has overwhelming number of icons thankfully segregated by function. As a beginning user, I found it easier to find tools using the pull-down menus rather than hovering over countless icons waiting for a tooltip to explain the icon. Thanks to help from the online help files, I was able to draw a 3D version of my concept and render it within a reasonable amount of time.
Rhinoceros 5 interface(Windows)
Rhinoceros 5 rendering example
I experimented with two IPad simulation applications from AutoDesk. The first is called ForceEffect Flow. This app allows you to put your designs into a virtual wind tunnel to see how they perform. The second application is called ForceEffect Motion which simulates and analyzes mechanical motion. You draw a version of your mechanism defining link lengths, actuators, range of motion. pivot points etc. and the software shows you the result. I could definitely see myself using ForceEffect Motion again for future projects. It is fast and simple enough that I could use it to simulate much faster than I could build and test physical prototypes.
ForceEffect Flow simulating smoke (IPad)
ForceEffect Flow simulating color trails (IPad)
ForceEffect Motion simulating my simple mechanism (IPad)
The goal to use so many different software packages in a week is quite ambitious.
I spent a lot of my time this week installing and troubleshooting software. All of the Windows versions installed easily without problems. I did however, have a problem with the Windows version of FreeCAD crashing every time I would try to duplicate an object.
I had a lot of problems installing software in Ubuntu. Some software could not be much easier to install. For example, type in sudo apt-get install inkscape and Ubuntu automatically downloads and installs Inkscape. I worried a little I could just as easily install a Trojan virus program of the same name or with a typo. There is also the Ubuntu Software Center which is like the Apple App store. It lets you browse the apps and gives pictures and descriptions so you have a better idea what you are installing. Unfortunately some software is not in the Software Center. A bigger issue was that the apps in the Ubuntu Software Center were out of date. Apt-get installed FreeCAD 0.12 which locked up at the splash screen. I had to uninstall it and install v0.13 using the following:
Ubuntu users: add a PPA repository. You can do it using a simple command: sudo add-apt-repository ppa:freecad-maintainers/freecad-stable And then: sudo apt-get update sudo apt-get install freecad
I had a similar problem installing Blender. Ubuntu Software Center only installs version Blender 2.62 when the latest stable version on the Blender website has v2.69. Since Blender 2.69 includes several important updates, I downloaded the 229MB archive install file (tarball) for Blender from their website. Once I un-archived the tarball, Blender should just run from directory that you put it in.
I installed fab modules (Kokompe). I initially received errors during the install so I figured out to use sudo make install instead of just make install. Fab modules runs but I still need to figure out how to edit usr/local/bin/fab_send to configure for my equipment.
Then I installed kokopelli. The first problem I ran into was the dependencies. Kokopelli needs Pyhton 2.7, wxPython 2.9, PyOpenGL, NumPy, CMake, and libpng to be installed. The problem was that Fab Modules has some similar dependencies. I had to figure out what dependencies programs I needed to install and if I already had the program if it was the right version. I followed the installation instructions on the Kokopelli github page. Turns out I needed an update version of wxPhython. Once I had the dependencies installed, I downloaded the install archive file from the Kokopelli github. I installed Kokopelli but it does not work. I recieve the error: importing koko.glcanvasNo handlers could be found for logger "OpenGL.arrays.numpymodule". I tried some of the solutions on suggested but it still does not work. I looks like I am having a problem with my Nvidia video card driver or OpenGL. I found a reference to someone having the exact same error as me at https://github.com/mkeeter/kokopelli/issues/5
The learning curve on such complex software can be very steep. There are manuals and tutorials available for most software packages. I often found it easy to do most of what I wanted and then get stuck spending an hour trying to get around one issue. For example, in Vectorian Giotto I could not arrange the order the objects were layered. The commands were on the menu, they just didn't work. No matter what I did, it drew the token behind the base. I fussed with it a long time but I never did figure it out. I worked around the problem by using a transparent wireframe base instead. Another example is FreeCAD, it would crash whenever I attempted to duplicate an object. I worked around it by manually drawing the same object multiple times.
It can be hard to solve a software issues because you need to determine the root of the problem. For example: