Towards a free matter economy (Part 4)

Tools of the trade

Download the whole article as PDF

Write a full post in response to this!


A good scientist is a person with original ideas. A good engineer is a person who makes a design that works with as few original ideas as possible. There are no prima donnas in engineering.—Freeman Dyson

Imagine where free software would be today if it weren’t for the GNU C Compiler! Just as free software depends heavily on free compilers, so does free design rely on having free computer aided design and authoring tools.[1]

Before the gcc was created, when free software had to be written on proprietary compilers, the software development community was limited to the very small number of people who could afford to purchase such tools—either because they were professional programmers or very dedicated amateurs.

Imagine where free software would be today if it weren’t for the GNU C Compiler!

The idea of “bazaar style” development hadn’t yet been conceived, but that was just as well, since such small bazaar sizes would lead to a breakdown of the bazaar development strategy[2]. No doubt some centrally controlled “cathedral” projects (such as the GNU project) would’ve continued, but the overall effect would be an extreme chill compared to the hotbed of innovation that free software currently represents. Lacking the kind of professional-quality design authoring tools that are found in the commercial engineering workplace, the free design community is in just that situation today.

Of course, it can be (and has been) argued that engineering is a specialized discipline and that therefore only a small technocratic elite can participate in the process—hence bazaar size might always be too small to be effective. But twenty years ago, this was the conventional wisdom about software development, too!

By users for users

A compiler is a program to write programs, so the users of the tool are also those qualified to create it. With design tools, we’re not so lucky: it’s a fairly rare engineer who has the programming expertise to develop proper engineering design software. This is a problem because bazaar development works best when applications are developed by the people who need them. In order to get a CAD/CAM system started, it will probably be necessary to start with a centrally organized solution—a cathedral development model—working as quickly as possible towards a solution that relies heavily on scripting that can be done by the typical end user of engineering software.

It’s a fairly rare engineer who has the programming expertise to develop proper engineering design software

This is the sort of approach that has proven itself functional in many projects in the multimedia and desktop application sphere: customization and scripting facilities have been the free software solution for desktop environments like KDE [3], vector graphics applications like Skencil [4], 3D animation and modelling applications like Blender [5], and particularly in game engines. All of these are situations where the same problem applies: the typical user is not a particularly skilled programmer, so a simplified programming environment is needed to make a more graded slope from user to developer.

This effectively increases the bazaar size for the parts of the program that can be scripted. User interfaces matter the most to the serious user and are the hardest for the programmer (who is not particularly skilled in the application domain) to predict. A user interface with a scripting engine gives a lot of leverage for the overall program, and the availability of easily-embeddable high-level interpreters such as Python make such a facility easy to provide. Thus, the “by users for users” philosophy of free software design can be stretched to suit real world applications, where skillsets vary between users and developers.

Computer aided design, simulation, and manufacturing

Although there are many other areas of design software which are useful and available, and many others for which no free solution yet exists, the most pressing and obvious need is for a general purpose 2D/3D mechanical Computer Aided Design and Computer Aided Manufacturing (CAD/CAM) system.

Figure 1: QCAD GUI. QCAD has an excellent and intuitive palette-based GUI that allows quick access to drawing constraint features, and is easy to learn
Figure 1: QCAD GUI. QCAD has an excellent and intuitive palette-based GUI that allows quick access to drawing constraint features, and is easy to learn

Specialized cases of CAD have already been covered by free software offerings—such as xcircuit [6] for drawing and capturing electronic schematics and pcb [7] for designing printed circuit boards, and general purpose 2D CAD drawing applications such as QCAD [8] are moderately well-developed (although they still fall short of proprietary competitors). The GNU EDA project[9] is making progress in the direction of integrated circuit design, and it should not be surprising that these “highly ephemeralized” technologies are among the first addressed.

Specialized cases of CAD have already been covered by free software offerings

Getting into the harder technologies, such as aerospace or mechanical engineering or robotics, requires much more sophisticated 3D CAD tools than those that are currently available. The modern manufacturing industry relies extensively on these tools to produce the kinds of complex technologies that we are accustomed to, and we won’t have much chance of being competitive in the free design world, until we’re able to use tools that are at least as good as these.

Friendlier interfaces

The interfaces in modern versions of proprietary CAD systems such as AutoCAD [10] have hardly changed at all in 20 years. They have traditionally relied on the high expressive power at low development cost of linguistically-oriented command line interfaces, leaving their visual-tactile graphical interfaces to stagnate. End user oriented free software artistic 3D tools like Blender, however, have seen much greater innovation, and they have demonstrated that a well-designed graphical interface for power users can greatly increase productivity, even for very complex tasks.

Figure 2: Blender GUI. Blender’s interface is cursed by new users, but greatly loved by power users. It does seem a bit daunting at first, but I quickly became attached to it. It compresses an enormous amount of options into a small space with an intuitive and highly internally-consistent design, using color-coded widgets, icons, and words as needed. If not actually used in a 3D CAD system, I think it should at least be emulated
Figure 2: Blender GUI. Blender’s interface is cursed by new users, but greatly loved by power users. It does seem a bit daunting at first, but I quickly became attached to it. It compresses an enormous amount of options into a small space with an intuitive and highly internally-consistent design, using color-coded widgets, icons, and words as needed. If not actually used in a 3D CAD system, I think it should at least be emulated
Don't miss out on the other pages!
12345next ›last »

Write a full post in response to this!

Similar articles

0

Do you like this post?
Vote for it!

Copyright information

This article is made available under the "Attribution-Sharealike" Creative Commons License 3.0 available from http://creativecommons.org/licenses/by-sa/3.0/.

Biography

Terry Hancock: Terry Hancock is co-owner and technical officer of Anansi Spaceworks, dedicated to the application of free software methods to the development of space.

admin's picture

Comments from the old system

Submitted by admin on Thu, 2006-03-30 14:30.

Vote!
0

From: chuck
Url:
Date: 2006-02-19
Subject: linux cad link page

Maybe I'm missing something but I can't find an edit button on the Wikki page.

Here's a page that lists a lot of linux cad links:

http://www.tech-edv.co.at/lunix/CADlinks.html

One project they don't lis is BRLCad:

http://www.brlcad.org/

ch

Anonymous visitor's picture

long-term stability of open-source projects

Submitted by Anonymous visitor on Sun, 2006-09-03 17:08.

Vote!
0

The abundance of half-finished projects is due mainly to the lack of monetary resources available to the bazaar. Cathedrals have money! It took me a good ten years of work to beat XCircuit into a schematic capture system competitive with the expensive commercial alternatives. That was roughly ten staff-years, with minor input from the open-source community. A cathedral-type business knows the value of time-to-market and can compress the development into half a year by allocating the necessary staff resources to the project. Consequently, the expenditure has to be recovered by charging "big bucks" for the software, no matter how incompentently executed it was. But, I sense a change in the air. Software is not what it once was. There are a number of technical programs that have proven to be much longer-lived than the conventional wisdom would suggest was possible. Some stability has come to the world of operating systems, and so software no longer needs to be completely re-written from scratch every few years. For a while, software vendors will depend on tricking customers into believing that old software is obsolete if it doesn't make use of the latest set of GUI widgets, but the engineers and designers who use the software will eventually understand that it's the underlying algorithms that make the tool, not the GUI gewgaws, which are easy to update on a well-written piece of software. Those open-source programmers who slowly plug away at their favorite projects will eventually catch up to the commercial vendors.


From the FSM staff...

Odiogo