Open Source Engineering Tools?
ThosLives asks: "It seems to be the case that most open source projects fall into the software development, business, and desktop realms. I have done a bit of unfruitful searching for good FOSS engineering tools. By this I mean: 3D CAD/CAM, FEA, fluids, and math simulation tools. I have been able to find various 'academic quality' FEA, fluids, and math sim tools; those are, however, not sufficient for even hobby-level production work because they: have a lacking interface; don't have a standard file formats; and are not standalone products (i.e., they require Matlab or some other expensive package). If you were going to set up an engineering shop to design and produce mechanical devices, what FOSS software tools, if any, are available and recommended? Commercial options are out of the question for the hobbyist, when even basic 3D CAD functionality typically costs more than $100 (and typically run over $500), and 'consumer-level' analysis packages are practically nonexistent. If there are no free options, what could be done with a budget of $500 or $1000? As an aside, are there any thoughts on why the engineering applications appear to be so overlooked by the open source community?"
While still in alpha, KTechLab looks pretty promising for layout and simulation.
The real path to male liberation
Haven't looked at this much, but I remember when someone was asking about the same sort of thing this link came up and looked fairly interesting. http://brlcad.org/
Utinam me logica falsa tuam philosophiam totam suffodiant.
Dear Slashdot, I am looking for an open source versions of some obscure expensive niche software that is only of interest to a tiny audience. Why can't I find it? I don't have much money, so it would be great if you guys could hurry up and write something which meets my needs.
(Meanwhile back in reality, open source users are overjoyed that they finally have a wordprocessor that arguably equals MS Word.)
Business. Numbers. Money. People. Computer World.
I was going to post the same, but it was already posted... But only at +1, so please mod it up, OK?
;-)
Yes, BRL (Ballistic Research Laboratory, US Army) CAD is as good as it gets in mechanical open-source CAD tools. Try building your own tanks
with anything else!
I wish we (electrical engineers) would have something compatible in OSS world -- as much as I like gEDA, it is NOT on the level of Cadence, etc.
Speaking of other simulation tools, like FEM/EM/etc., do you know about the (NASA/JPL-founded, I think) Open Channel Foundation?
Paul B.
As an aside, are there any thoughts on why the engineering applications appear to be so overlooked by the open source community?
Because they're really really hard.
How we know is more important than what we know.
If there are no free options, what could be done with a budget of $500 or $1000?
Not much, unfortunately. Most commercial grade engineering apps run tens of thousands of dollars, raising to hundreds depending on the area of specialty. Telco software (for example) can easily raise this by an order of magnitude.
If your corporate budget is $1k, you should be happy with any FOSS software you can get.
Personally, I use Eagle for circuit design (it's not FOSS, but they have free linux, os x, and windows versions available) on OS X. I'm sure there are many other great apps out there, tho...
Don't think that a small group of dedicated individuals can't change the world. It's the only thing that ever has.
I hate to break it to you but here it is.
As an aside, are there any thoughts on why the engineering applications appear to be so overlooked by the open source community?"
See subject.
Then, re-read the subject.
There is only an extremely small fraction of open source enthusiasts that need this sort of software or are even interested in it. The people that know how to program them and are interested in doing the work for this type of program for free are scant. There are probably projects underway.
File formats are a very tricky thing to deal with, proprietary formats that aren't popular just don't see the attention needed to properly decode them. Then there's the matter of having access to the proprietary program to test whether the files you write are compatible. It's kind of a vicious cycle, everyone has Word, but practically no one has CATIA.
For fluids, you really can't beat Overflow and its associated tools. Written by some of the guys at AMES, its open source and comes with decent grid generation tools. I am not a structures guy, but isn't NASTRAN an industry standard NASA FEA tool?
http://octave.org/ i suggest you get the cvs version. most matlab scripts will just work, unless they're mex files (in which case you're s.o.l.). that makes a lot of the packages you mentioned at least possible.
as for the meat of your question, i suggest you try to write one of the pieces of software you mentioned --- the exact reasons for why they're hard to find in general will become apparent pretty quickly.
Most of these labs have made their softwares available for download. Lots of modeling softwares to choose from. Just get a list of all of these labs and hit all of their websites, you might find the software you need. Certainly there are many FEM and fluid dynamics packages...
Oh, and NASA too, as someone else said.
I have seen these before when I searched for some such packages. Don't remember which site, as there was software at each site.
http://www.opencascade.org/
It is a big package far more capable that most commercial apps and is open source.
/..sig file not found - permission denied.
CAD is hardly niche. AutoDesk (makers of AutoCAD) made $1 billion in profits last year.
Take the US Construction industry, 4.8 percent of the U.S. GDP. That's $1.1 trillion. Now figure that most architectural firms I know (I'm an architect) have a copy for every intern, drafter and architect they have. That's a ballpark of 113,000 people. The same then goes for the mechanical, electrical, plumbing, structural, civil, landscape architect, and survey design professions. Also, most owners have a facilities department, they all use AutoCAD. Nearly all larger contractors have a copy, as well as most smaller specialty shops like cabinet makers, hardware manufacturers, etc. Throw in all the units at colleges and universities for the students in these professions to use. This is just the construction industry! We haven't even counted industries like automotive (not just cars, think parts), transportation, aerospace, electronics, toys, pharmaceutical equipment, and whatever else I forgot.
Free Software versions are not around, but there is a huge market for CAD software. It's not easy, it's not shiney...and it's not niche.
There is no need to use a SlashDot sig for SEO...
Why? It's soooooo easy to add a good GUI to any application on any platform even with C++. You don't know how? Go to wyoGuide (http://wyoguide.sf.net/). Ahhhh the developers of your favorite application doesn't know. Just tell them to look into wyoGuide. But ...! Well then I can't help.
O. Wyss
X-Cad is pretty decent CAD software, and you can get a free version at www.x-cad.net I've heard GNU Octave is good as a matlab replacement as well. --buddy
How the fuck can the first post be redundant? Idiots...
Congrats, you picked a really expensive hobby. Now get a job to support your habit. Try to avoid wife/kids. Probably the most expensive hobby of all.
I'd mod you up, but just spent my last point. So I'll give the common response instead:
"I just looked up what programs seem to be dedicated to doing what "obscure expensive niche software that is only of interest to a tiny audience" does. I used Wikipedia's List of open source software or a google search or something similar. If I actually cite my source, it is only to ridicule 1)you for asking in the first place 2)Slashdot editors for actually posting your garbage. I haven't actually used the software, but it rules."
I posted previously on CAD/CAM/CAE/FE. Now for more genereal purpose (numerical) math software.
As has been suggested, GNU Ocatve is great. It is mostly compatible with MatLab, and even more powerful if you use Octave Forge. It satisfies all of your requirements: it uses "standard" matlab-like files, and is stand-alone. Some of the apps which say they require Matlab may work under Octave. If they don't, a few bug reports might urge the developers to try to make sure their programs work on Octave too (many F/OSS developers have at least sympathy for those who were looking to create a complete F/OSS foundation). If not, you might have found a good project to take on: it could be used by you and others & will also expose what the programs are doing.
Python is also quite nice. Particularly when you extend it with scipy, scientific python, numeric or numarray, ipython, matplotlib, and other libraries and tools for numerical analysis. Some of my past work was in Octave. Now much of it is in python. I use ipython as my calculator & my saved python code interfaces with Grace to make beautiful 2D plots, etc. Octave and Python are both able to call external programs/scripts, so you don't have to be tied to one language.
There is also liability involved when doing engineering software.
But OpenSource is alive and well in this arena. http://www.opendwg.org/ is just one example.
You can go one of two ways for FEA.
As one promising application in open source FEA, take a look at Gmsh.
Part of the problem is that there is whole sequence to typical FEA
Traditionally, analysis has been decoupled from geometry, using very simple low order elements to do the calculations. Visualization, likewise, can be done based on millions of linear tetrahedra, hexahedra, or surface patches.
Now, it seems increasingly useful if higher order, global geometric information (eg, NURBS) could be made part of some finite element analyses and passed back and forth more easily through each phase of analysis. I keep hoping that OpenCascade or perhaps something like X3D provides a geometry engine that is open and is useful to FEA.
When you get down to it, much FEA shares a lot with the gaming community in terms of needs for geometry, surface discretization, and visualization.
Perhaps my dream FEA FOSS geometry representation will be realized when someone in the gaming community decides to use FEA to help render more physically realistic scenes rather than faking things that look realistic enough but cheat (and why not?) on the physics with a less computationally expensive algorithm.
"Provided by the management for your protection."
"Have you looked at http://www.openworkbench.org/? It's a formerly commercial PM package that went opensource a while back."
So in other words the bazaar model can't deliver the goods, so it's the cathedral model (the "buggy-whip") to the rescue. How much for that irony in the Windows(TM)?
Scilab is free as in beer, but not free as in libre. It runs on Linux, Solaris, HP-UX, and Windows. It's pretty similar to Matlab, as best I recall. It also includes links to Maple and PVM.
Another possibility (again, not libre, but free) is LyME for the Palm Pilot. LyME is a matlab-like environment good enough for simple what-if scenarios.
Envy my 5 digit Slashdot User ID!
How many First Posts have you seen?
Idiot...
Is this helpful to you, or have I misunderstood the question?
QCAD
In Soviet Russia, the signature reads YOU!
SAL: Scientific Applications on Linux
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
As an aside, are there any thoughts on why the engineering applications appear to be so overlooked by the open source community?
In general open source programmers scratch an itch.
Programmers don't always make good engineers.
Engineers don't always make good programmers.
If you really love programming, you'll typically want to spend more time programming than, say, engineering. Therefore you may not ever have the desire to write an engineering program unless an engineer challenges you.
If you really love engineering, you'll typically want to spend more time engineering..ing than, say, programming. Therefore you'll likely never write your own tools if there's something available that you can use out of the box. Especially if it's an industry standard and can get your better employment.
Programmers make programs that make them more efficient. You don't see many open source knitting programs. Same for cat breeding and many other areas where programming doesn't naturally flow.
If anything, however, engineering is one of the closest disciplines to programming, and there is a lot of OS engineering software out there.
-Adam
Intron: the portion of DNA which expresses nothing useful.
Here is another program. I am not experienced in this type of application but it may be useful. http://www.opencfd.co.uk/openfoam/ OpenFOAM CFD Toolbox
Close, but not quite. Because you need domain knowledge. I have no idea of what a MechE does in his day to day worklife. As such, I'd be unable to design software to do it. Unlike a word processor, which I know and could whip out in a few months.
You basicly need either the main developers to be experts in their fields, or to be working very closely with people who are. Otherwise such a product is doomed to failure.
That said- I'd love to see some FOSS engineering tools. Its a necessary step to spreading the FOSS ideals to other types of design. Imagine being able to download your own MP3 player board layout, and just pay someone to fab it. Or for fab companies to make the boards on spec, and sell them far cheaper than one from apple, creative, etc.
I still have more fans than freaks. WTF is wrong with you people?
I've found this to be mostly true, especially in the past. I've been looking for decent Electrical Engineering tools for Linux. Being a student, I can't really afford any of the commercial solutions (and they're actually not all that great either.. I find PSpice to be complete crap). I'd like to have some basic tools just for drawing circuits, never mind accurately modeling them, but the ones that exist are pretty bad. Oregano is the most decent of the bunch, but it has really terrible UI bugs (can't edit out unnecessary pins or labels), and sometimes its internal grid gets misaligned and the wires you're drawing won't connect properly.
This isn't even stuff that's that hard to code -- the CompSci students at my school all have to take the intro circuits class.
On a positive note, it's pretty encouraging how far projects like Audacity (audio editing), Gimp (image editing), inkscape (vector graphics) and a whole slew more I'm forgetting have come -- these are all difficult projects, and especially difficult to code with a decent UI, and I've found them much more useable as of late. So perhaps there's hope for smaller projects that aren't as widely used, as, say, Firefox.
http://cltracker.net -- powerful craigslist multi-city search
On the command line, Scilab is equivalent to Matlab. So, if you're a student and don't want to buy Matlab, Scilab is for you. The Matlab exercises you typically see in textbooks run on the command line so you might as well use Scilab. I find it quite useful for designing FIR and IIR filters.
On the other hand, Matlab has a much nicer GUI. The Scilab man pages aren't particularly easy to understand for a newbe. If you just want to design one filter, and your math isn't strong, and don't particularly care if you understand what you are doing, Scilab may be too much trouble.
So far, the people I've suggested Scilab to haven't found it necessary to buy Matlab.
http://freshmeat.net/projects/planner
It aparrantly used to be called MrProject.
My other first post is car post.
So why not use Octave, which IS free as in libre?
Octave seems to have a bigger developer and user community (with Octave-Forge & similar repositories).
...and that means it takes a long time to write. And it has to be done correctly/well. The guys with the knowledge to write this stuff already do it for a living. Think math, physics, computer science, and engineering - all in one person. That's an expensive person!
I study at a top British university, and contrary to what many think, a lot of the engineers within the university write code to "scratch an itch." The only issue being that they tend to then not generalise it, and often probably don't give it to the world on the internet. There's always some matlab code knocking around in the department for whatever you want to do, but yes, it's matlab code and not a pretty picture interface.
I guess what's really needed is just someone to spam the universities to try and get the code out there and then spend some time sticking it all together. Sounds like no more than an afternoon's work!
The classes were awful, and being the oldest guy in the room didn't do much for me personally. I was a wiz in chemistry in high school, but very much tired of it by 33, yet they had me take high school chemistry AGAIN because I'm old.
Well, the labs were insulting to my intelligence (does sugar dissolve in water? Let me find out), they were not prepared physically in the lab to have the @#$@#$! materials on hand, AND the TA jackass hated me personally because I called him on his bullshit and therefore failed my lab report. It's strange because even in 2003 people were handing in hand-written reports on ratty wrinkled paper torn from spiral-binders, and they got better marks. I handed a laser printed, edited, spell-checked report with graphics and tables.
I got so upset I wanted the guy fired. I realized school is for children, and not for 33 year olds with a decade's worth of real-world experience. When I got my grades by mail, I didn't even open it just tossed it in the shredder. Never went back.
I work in electrical engineering anyways, university can suck my ass.
Mostly random stuff.
There is also liability involved when doing engineering software.
Not really. The liability is on the person using your software. If a bridge falls, its the civil engineer who certified the plans that is held liable. The worst thing that could happen is that the engineer goes to jail and they no longer need a license for your software.
I normally write under a fixed sum contract and the company that hires me owns the code. I make a tidy income maintaining the code as the company upgrades to new hardware.
If I sign a contract to produce code that implements a given algorithm and there is a hidden flaw that appears later, the engineer goes to jail and the company sues me. Not exactly the way I want to spend my retirement fund.
I've just downloaded Elmer, which looks promissing.
http://www.csc.fi/elmer/
The problem with open source tools is that the graphical user interface is a bit lacking. On the other hand, if you really want to do something worthwhile, you won't be able to do it with a GUI -- after all, it isn't really a Turing complete way of interacting. All the necessary libraries are open source. There are some nice frameworks that use these libraries, and Elmer (http://www.csc.fi/elmer) is a nice one, and it is also GPL.
juha