Manifold Geometry // Многообразная Геометрия

Getting recognized by OPEN CASCADE

/ Просмотров: 1924

OCC marketplace is up and running.

Some of you, guys, might have noticed that OPEN CASCADE (The Company) recently came up with an updated version of their website. Here it is with a nicely rebranded jinn popping up from a lamp and challenging you to grab his small chest of gold. For free. A nice metaphor, really. It's not you who pays bucks, it's rather the jinn who promises you a wealthy future with that open-source library. Like it or not, but this logo is way better than the soulless artwork of many other brands. That really brings me back to the nineties. But let's get back on track.

Euclid Quantum. The father of OpenCascade.

I was pleased to be informed that our lovely Analysis Situs is now mentioned in the "Projects" section of the new website. See it here. So we're getting serious, don't we? Frankly, it's hard to expect a large user base for software like Analysis Situs. My intention was never to create an end-user product out of this thing. It's too weird to be packaged into something that sells. But, again, that was never the plan. The initial idea was to build up a prototyping workbench. I mean, some sort of an incubator where one grows up his algorithms before it's time to release them out to the wilds. And you know what? It kinda works. Or does it?

It's not exactly obvious how a C++-based prototyping system gains its audience, given the availability of Python with its low entry barrier. And the honest answer is actually quite pessimistic. The truth is that C++ is not a prototyping language for the masses. If you wanna get started with OpenCascade and alike, you'll likely search for its Python bindings in the first place. Then, if you get things to work, you might switch to C/C++ for the sake of performance. In such an outlook, there's hardly room for a C++ prototyping test bench. Even less space is left for the more niche languages like Tcl that is promoted to be the "prototyping" thing for OpenCascade. Nobody wants to prototype in Tcl. It's simply a conceptual misuse of this command language that really shines in automation/batch workflows but ends up with a lot of pain for low-level programming. So, how can something like Analysis Situs with its harsh C++ and Tcl setting get its audience?

Big boys (Dassault Systemes) came up with a JavaScript-based prototyping bench named 3DScript.

The answer depends on what you'd call an audience. Engineers? Nope. These guys are too pragmatic to spend their qualified hours on something that is not supposed to solve any real engineering problem bottom-up. Scientists? Hell, yes. Wrapped with scientific freedom of trials and search, you're not finding yourself under the constant commercial pressure that urges you to release stuff asap. You have your curiosity backed with a good deal of time. Another opportunity to "find people" is finding the right people at a good moment in time. Remember those folks messing around with Python until getting completely desperate to make something useful out of their exercises? You got the point. To transit a messy prototype from a "proof of concept" state to a workable solution, you'd need to change horses and get into C/C++ (well, someone would call out C# here as well).

That's not to say that Analysis Situs is the best fit for scientists and start-up CTOs. What I wanna say here is that if you feel an overwhelming urge to share your messy C++ code base with someone who would appreciate it, you'd need to look for such people in somewhat dark places. The follow-up question is why would you? Why not share just a small shiny independent algorithm on GitHub and let people grab it for solving their daily routines? Why would you go for a huge system that nobody (except you, of course) is going to use? I'm close to saying "stop doing that," but that's not a recipe for all cases, of course. And, frankly speaking, I do not have an answer for myself either. It just grows and I'm sort of watching it growing while feeding it with some extra bits when it craves.