Monday, January 10, 2011

OCWrappers and NaroCAD

This will be mostly a personal rant and is in interest of some people that are reading this blog (and want to develop something) and represents my view in relation of OpenCascade (OCC) technology.
NaroCAD is a .Net free/opensource effort to create a full parametric CAD system on top of OpenCascade. We try to use good technologies from scratch (OpenCascade being one of them, also we use .Net 3.5 SP1 capabilities like Windows Presentation Foundation, closures, delegates/generics based parametric propagation, which would be a pain to be implemented in C++ like languages, and so on) and that's why for now is Windows only.
NaroCAD builds its own wrappers (namely OCWrappers assembly) starting from original work of bxtrx. This was done for some reasons like the status of NaroCAD (have to be GPL2) and both NaroCAD and its wrappers are under GPL2. They were leaking initially (they sometimes do as of today, but the scale is much smaller, and sometimes are not cause of our code, but of OCC code).
The most important problem I want to state mostly we have two kinds of requests with status of OCWrappers: can we should add this/that package and secondly: and to make it build on VS 2010, Mono, 64 bit and so on.
NaroCAD is a fairly big project with a fairly small team. At any given time we never had more than 3 active developers (that do add contributions, they were in historically terms: bxtrx and myself most of time, devasted, Cristi, Sami, Joerg), so wrapper generation, which is time consuming, for people want to start from our work, should start just after you tried all options. Is best for our time and may be for your time too. If you want to contribute as wrappers you think that may be an issue, may be like: add your wrapped package as a patch and submit against NaroCAD Svn repository. This is not only a "good citizenship" but is also required by GPL2 license that NaroCAD (wrappers) use.
As wrappers are fairly stable, and NaroCAD use them (mostly) in a right way, which is the point to make wrappers for working on all custom configurations (like 64 bit)? It has for now no return.. I'm not necessarily point as money, but as time saving for both sides.
Licenses aside, because we have big plans with NaroCAD, we will mostly extend wrappers and it's functionality based on necessities, so for this reason we do not have plans to support this or that package (for example OCAF will never be supported even in our past we did make classes that are wrapped, because we have a better to date implementation for it).
Do you really need .Net wrappers, you will likely want just to get them in a good working shape: OpenCascade provide to you supported wrappers, they will be paid ones, but they will certainly work.
Why I put this option? NaroCAD could not exist without OpenCascade, and if a person thinks that freedom just free as price, is wrong. NaroCAD will not exist without paid OpenCascade developers and the best way to get things even for free as price tomorrow is to invest today (even sometimes with your own money or time) in things that are important for you.

No comments: