Open Source Marine Design Package Kickoff

Discussion in 'Software' started by roskilde, Oct 30, 2006.

  1. roskilde
    Joined: Aug 2006
    Posts: 6
    Likes: 0, Points: 0, Legacy Rep: 10
    Location: Reston, Virginia, USA

    roskilde Junior Member

    I've just started working on a new marine design package using open source, iterative, and literate programming techniques. Although the first release is still several months away, I am actively looking for volunteers to work on the project.

    Initial development platform is Ubuntu 6.10 (Edgy Eft) GNU/Linux on x86/x64, with Python/C++/OpenGL as cross-platform programming tools, UML for design, and Subversion for source control. Evaluating several alternatives for cross-platform GUI, including XUL. NURBS provide an established mathematical foundation for curves, surfaces, and B-rep solids. XML provides a convenient storage and retrieval format.

    To build an open source totally integrated, automated, and validated marine design and analysis environment is likely to take years, if not decades. Ambitious? Extremely! However, after studying the free and open source movement for quite some time now, I am encouraged by its vast potential to educate, innovate, and motivate.

    If you or your company would like to participate in this process, please contact me via this forum or by email. In the mean time, watch this space for further developments.

    As always, feedback is encouraged.

    pauls(at)roskildesign.com
     
  2. Tim B
    Joined: Jan 2003
    Posts: 1,438
    Likes: 59, Points: 0, Legacy Rep: 841
    Location: Southern England

    Tim B Senior Member

    Interesting, I started doing something similar about 18 months ago. You will find that the reason we all use individual pieces of software for Geometry, Stability, VPP etc. is that is the only way you can maintain the software properly. However, what you can do is make your code interface directly with other people's code, and even (if you're really lucky) link it as a pre-compiled object.

    My advice would be to really think about which aspect you want to focus on and give the design community a linux tool that we can really use. As for the GUI environment, I'd go with QT (version 3 or 4) it is actually quite powerful, and leaves you free to work on the maths, rather than the windowing.

    I'm currently trying to do CFD on yacht hulls, so I don't have the time to develop much. If you want I can e-mail you my code as far as it's got. What would be good is an OpenGL display that allows manipulation of a surface by control points. (I can do it in QT using QPainter, OpenGL is a little harder).

    Tim B.

    Tim B.
     
  3. Gerard DeRoy
    Joined: Jan 2004
    Posts: 56
    Likes: 3, Points: 18, Legacy Rep: 19
    Location: Montreal

    Gerard DeRoy Junior Member

    I see that the technical aspects of your project is already well determined.
    But you gave no idea of the kind of tool you want to offer to boat designer.
    Since you are at the beginning of your project, experienced boat designers from this forum could be interested by the functionalities of your project. After all they are your targeted users!
    A practical way would be to present the main screen of your intended application with the drop down menu. Hopefully the items on these menu would be understood by boat designers. Please do not start with nurbs or rendering jargon.
    I believe there is still a need for software based on the classical boat design
    paradigm.
    I also believe that the basic processes of boat design should be integrated in one tool.(Drawing, hull static properties, hydrostatics, stability, resistance and driving forces, heeling moment, VPP, mass calculation and CG).These are related and need integration.
    Secondary level of design should be the object of specialized tools.(sail design,rigs, elements design, ...). these do not need integration.
    There could be a significant (worth your effort) number of boat designers interested by a Linux, MacOs platform.
    Get them on your side first they are your users.
    Gerard
    BoatExpress Developper
    My design is free to copy.
     
  4. roskilde
    Joined: Aug 2006
    Posts: 6
    Likes: 0, Points: 0, Legacy Rep: 10
    Location: Reston, Virginia, USA

    roskilde Junior Member

    Thanks for the feedback. I'm planning an integrated package from the user's point of view, even though it may composed of modular pieces with well defined interfaces (API's) behind the scenes. Interfacing with other people's code is a goal -- hopefully the open source nature of the project encourages other to contribute in that area -- as interoperability standards are few as compared to other industries.

    I have heard good things about QT3/4; however, I'm not clear on whether OpenGL support requires commercial QT Desktop license, especially on Windows. If I have misunderstood the QT Open Source licensing, please let me know.

    When I get to the point of integrating analysis code, I'll keep your effort in mind.
     
  5. marshmat
    Joined: Apr 2005
    Posts: 4,127
    Likes: 149, Points: 63, Legacy Rep: 2043
    Location: Ontario

    marshmat Senior Member

    Hi roskilde,
    I strongly second what Gerard said above. There are a lot of CAD packages around for a lot of applications. But designing a boat on CAD- and I mean really designing one, with the intent of building and using it- requires at least as much CAD background as boat background. What's missing is a program that someone who knows boats, and knows how boats work, can use as easily as (s)he would use a pencil and paper to flesh out an idea and bring it to life. In other words, the mathematical foundation and the coding tools exist and have been implemented- what the community needs is an implementation that works and feels like the boat design process.
    Rhino pisses me off sometimes, when I get sucked into the nuances of knot weighting or whatever, instead of seeing on the screen the smooth curves I visualize in my head. SolidEdge and its kin are a gajillion times worse. I would love to be able to sketch out some key lines, make a nice smooth hull out of them, and see how it floats, without the irritating quirkiness of most CAD stuff. Free!ship has some really good ideas and I think it's on the right track, but I just can't bring myself to like subdivision-surface modelling quite as much as I like NURBS (must be the engineering physicist in me seeking mathematical perfection).
    So my advice to you, roskilde, is to start from the designer's mind. When you imagine a boat, how do you visualize it- now how would you put that on paper- now what would be an intuitive way to put that into digital code. If you have a vision of what this program wants to be, the technical details can fall into place from there.
     
  6. roskilde
    Joined: Aug 2006
    Posts: 6
    Likes: 0, Points: 0, Legacy Rep: 10
    Location: Reston, Virginia, USA

    roskilde Junior Member

    Thanks for your interest. Before I moved across country to study NA&ME, I asked my traditional wooden boat sailing instructor at the Center for Wooden Boats in Seattle (www.cwb.org) whether the world needed yet another naval architect; his answer was to the affect that I was asking the wrong question. A naval architect would likely not ask such a question, as they are driven by an inner spirit to make their mark upon the world through creative expression manifested in these wondrous floating works of art and engineering. It just so happens that my inner daemons compel me to develop innovative software for small craft design.

    The sentiment for software based upon classical boat design has been expressed in several of the forums on this site; I hope to work towards addressing this opportunity. Likewise, running the software in a non-Windows only environment is also appealing for many.

    From both a users and a technical point of view, I'm betting that the complete small craft design process can be approached from within what appears to be a single application (not that the user is restricted to that application). However, traditional graphical user iterfaces need to be rethought as the primary mode of human-computer interaction. With a commercial application this type of innovation is an uphill battle against entrenched opponents; whereas, an open source application can more easily provide for many competing types of experimental user interfaces.

    Good Advice. Perhaps we should start with a software program that can do little more than design a small traditional wooden rowing boat well?
     
  7. Tim B
    Joined: Jan 2003
    Posts: 1,438
    Likes: 59, Points: 0, Legacy Rep: 841
    Location: Southern England

    Tim B Senior Member

    A point on QT3/4 and OpenGL. As OpenGL is an "open" standard (at least, it's meant to be), you can use it with QT3/4 with the free license without problems.

    Compiling OpenGL Apps in windows is harder than on Linux (where we just link against MESA), but that probably reflects my need to use Win32, rather than any real difficulty. There is probably an OpenGL SDK for windows somewhere.

    The main CFD work is part of work I've been doing over the last five years in grid generation. The current CFD project will include validation against a considerable amount of tank-testing work. I will not be making any of this software free or Open Source. It represents far too much personal investment of time and money. It would also slightly defeat the advantage I'm trying to build for myself.

    However, if you want I can send you my hull design software and the GLFrame custom widget. My Current System is Mandriva 2007, KDE 3.5 and QT3. It seems to be as good a system as any.

    Cheers,

    Tim B.
     
  8. Robert Miller
    Joined: Dec 2003
    Posts: 95
    Likes: 1, Points: 0, Legacy Rep: 12
    Location: Rhode Island

    Robert Miller Junior Member

    This is exactly the point that struck me most when I began to look at CAD for boat design.

    As I have said, the computer is, in the end, just another yacht designer's tool, albeit one that can make many tasks easier, faster, and more accurate. CAD is, then, a benefit to yacht designers because designs can be done with far greater efficiency. And, I think, greater ability to predict the success of the completed boat.

    What is sorely needed is an affordable package that works the way a naval architect was trained to work. One that feels immediately familiar; almost as if still drawing by hand. Like any other software, such a CAD package will still have a learning curve, and that's to be expected. But there is no reason why that effort must include learning a whole new and different, (alien, I would say) approach to designing a boat, or be very much different than the time you may have spent learning to draft properly by hand.

    Making pretty renderings is nice, but, in the end has little to do with properly designing a boat, except, perhaps, as a pretty picture to show the client in order to close the deal.

    I must admit, again, that I speak from rather less experience than most of you. Maybe, though, through this very lens I look at beautiful multicolored renderings, and see little more than pretty pictures accompanied by tables of numbers - the latter accurate, no doubt.

    I feel almost like the child in the fairy tale screaming, "but the Emperor has no clothes".

    That is why I was struck by the feature list and goals listed in the documentation for BoatExpress. Finally... somebody seems to "get it"!

    Now, if BoatExpress were set free from the crushing nonsense of Windows, and developed for a real OS (UNIX core: Linux, Mac OS, OpenSource), we would be half-way there. The other half is, of course, continuing development to encompass all of its stated goals, and beyond.

    I suggest, then, that truly experienced designers be deeply involved in the process, rather than leaving it in the hands of those programmers to whom computers are a religion rather than a tool, and Windows is the messiah.

    I guess I just want to design boats.

    Robert
     
  9. JesperW
    Joined: May 2006
    Posts: 45
    Likes: 4, Points: 0, Legacy Rep: 54
    Location: Stockholm Sweden

    JesperW http://journeyman.se

    I would second the "Go for QT4" point. Makes it smoother to move to windows, where your stuff will have a much larger following and thus a larger chance of gathering more developers.

    From the QT4 docs:
    ---------------------------
    The QGLWidget class is a widget for rendering OpenGL graphics.

    QGLWidget provides functionality for displaying OpenGL graphics integrated
    into a Qt application. It is very simple to use. You inherit from it and use
    the subclass like any other QWidget, except that instead of drawing the
    widget's contents using QPainter etc. you use the standard OpenGL rendering
    commands.
    ----------------------------

    The only QT4/win32 application I use is Maxwell Studio. In early QT4/Win32 releases the QGLWidget was not very good (slow!), but it has shaped up significantly now.
     
  10. roskilde
    Joined: Aug 2006
    Posts: 6
    Likes: 0, Points: 0, Legacy Rep: 10
    Location: Reston, Virginia, USA

    roskilde Junior Member

    Thanks for the clarifications on QT. My primary remaining concern remains its restrictions for dual licensing (see http://www.trolltech.com/developer/downloads/qt/faq).

    wxWidgets is also cross-platform with a more permissive license based upon LGPL that would fit in well with a dual licensing model see (http://www.wxwidgets.org/about/newlicen.htm). It also has nice set of Python bindings (http://www.wxpython.org/), along with C++, Perl, and .NET bindings.

    XUL (~243MB of source alone) is turning into a larger effort than I want to take on at the moment.

    Ultimately, the choice of a cross-platform GUI toolkit isn't going to be critical, as the software systems architecture won't be dependent upon it. This is carried to the extent that the application can be entirely run from another program, or even from the command line.

    Note: I'm leaving the door open for dual licensing just in case its needed.
     
  11. roskilde
    Joined: Aug 2006
    Posts: 6
    Likes: 0, Points: 0, Legacy Rep: 10
    Location: Reston, Virginia, USA

    roskilde Junior Member

    Do any of the following references speak to the traditional small craft design process as referred to in this thread? Please comment and/or provide other references to enhance further discussion.

    o Architecture Navale, Paulet & Presles
    o Designed to Cruise, Marshall
    o Elements of Yacht Design, Skene
    o How to Design a Boat, Teale
    o The Nature of Boats, Gerr
    o Principles of Yacht Design, Larsonn & Eliasson
    o Sailing Yacht Design, Phillips-Birt
    o Understanding Boat Design, Brewer
    o Yacht Designing and Planning, Chapelle
    o Yacht and Small Craft Design, Trower
     
  12. Robert Miller
    Joined: Dec 2003
    Posts: 95
    Likes: 1, Points: 0, Legacy Rep: 12
    Location: Rhode Island

    Robert Miller Junior Member

    In answer to your question, I can speak only to those books on your list which I have personally read.... and would add one other.

    o Elements of Yacht Design, Skene (Eighth edition)
    o Yacht Designing and Planning, Chapelle
    o Understanding Boat Design, Brewer

    A wonderful reference is:
    "The Common Sense of Boat Design", L. Francis Herreshoff.
    This book is currently in reprint by D.N. Goodchild. (Very nice edition)

    Robert
     
  13. Gerard DeRoy
    Joined: Jan 2004
    Posts: 56
    Likes: 3, Points: 18, Legacy Rep: 19
    Location: Montreal

    Gerard DeRoy Junior Member

    Do any of the following references speak to the traditional small craft design process as referred to in this thread? Please comment and/or provide other references to enhance further discussion.

    o Architecture Navale, Paulet & Presles
    o Designed to Cruise, Marshall
    o Elements of Yacht Design, Skene
    o How to Design a Boat, Teale
    o The Nature of Boats, Gerr
    o Principles of Yacht Design, Larsonn & Eliasson
    o Sailing Yacht Design, Phillips-Birt
    o Understanding Boat Design, Brewer
    o Yacht Designing and Planning, Chapelle
    o Yacht and Small Craft Design, Trower
    *******************************************
    o The Nature of Boats, Gerr
    This is a very good introduction to the world of boat.
    o Principles of Yacht Design, Larsonn & Eliasson.
    This is a great book. It gave the evolution of classic boat design to the year 1995. It is very easy to follow with all the explanations on boat design theory and practices. All the formulas to design a proper boat are included and explained. Reading and studying it took me a year(sailing and reading) to manually calculate a boat. Back home I programmed all the formulas and finally built the software BoatExpress which is an automation of the formulas gaven in the book nothing else. It goes from drawing the hull to VPP.
    It does apply to small dory or 15 meter sailboat.
    If you buy only one book on boat design, this one is still enough.

    Gerard
     
  14. CWTeebs
    Joined: Apr 2011
    Posts: 232
    Likes: 15, Points: 0, Legacy Rep: 171
    Location: Maine

    CWTeebs AnomalyGenerator

    What's missing is an open source frequency domain radiation and diffraction potential flow code. This is the only tool lacking from the already existing open source tools that can be used for marine design (i.e., OpenFOAM for CFD, CalculiX for FEA, CAELinux 2011 for GUI).

    I'm collaborating with a fellow who's written his own under a Navy contract but can't make it OpenSource. He has, however, reliably answered my questions when I'm stuck understanding the theory.

    What I've been mulling over is writing a Rhino3D plugin that does the radiation and diffraction calcs, effectively a low order WAMIT (I haven't yet developed the self esteem to start this as a serious project however).

    Opinion?
     

  15. quequen
    Joined: Jul 2009
    Posts: 370
    Likes: 15, Points: 28, Legacy Rep: 199
    Location: argentina

    quequen Senior Member

    Roskilde, I'm writing this as a CAD user, I'm not NA nor System Analizer nor Programmer. About your project, I'll add my own point of view to the skilled posts of this thread, if you don't mind...
    1- Pursue efficiency. Trying to make your package working as a traditional NA does it, is an attractive temptation but a Big Funtional Mistake (note that I say "functional" and not "commercial"). The same mistake has been repeated many times in many softwares, starting from AutoCAD, which is just a traditional 2D design board working into a PC, with years of piled complexity but an unavoidable bad origin. I suggest you to make a carefully study of actual packages nowadays on market, find their pros and cons, Use Them, erase them from your mind and then you'll be able to improve them. The old "think out of the box" concept...
    2- If your intention is to provide a service to the NA community, then make your package programmable by the user. That's perhaps the most important feature of AutoCAD and the one that made it famed and interesting for other developers. It's not just a big funtionality achievement but a marketing stroke also.
    3- The same applies to Compatibility (both import and export), particularly with third party packages covering fields that your's doesn't.
    4- Fragmentation in modules ain't nice for users but is much more practical for developers. Good, lissom developments call for more users. Perhaps you can work on fragments and make them real-time interconnected so they can interact fluidly.
    5- Focus on a very fast Learning Curve, think on it as the door to success. Behind it, you can achieve more ambitious targets.

    Hope this helps ;)
     
Loading...
Forum posts represent the experience, opinion, and view of individual users. Boat Design Net does not necessarily endorse nor share the view of each individual post.
When making potentially dangerous or financial decisions, always employ and consult appropriate professionals. Your circumstances or experience may be different.