Banate CAD Lurches towards 2011 finish linePosted: December 19, 2011
It has not been a quiet week in Lake Bellevue…
There is a New Release of Banate CAD, which can be found here: Banate CAD
What we have here, is NOT a failure to communicate, but rather the ability to communicate using multiple mechanisms.
But, those squggly circular lines don’t look anything like what I’d be doing with a 3D CAD program meant for modeling things to be printed…
Well, one of the core tenets of Banate CAD is that hard things are doable, and easy things are easy. Processing is a programming environment that has gained a tremendous amount of popularity over the years. In particular, it has made it relatively easy for graphics artists to create amazing display installations which include audio, video, animations, and graphics in general. It has been able to achieve this because it pulls together all the little bits and pieces necessary to do such things, and presents them in a relatively easy fashion that anyone with a high school education (or not) can understand and utilize.
What does this have to do with 3D printing? Well, I think the state of tools for 3D modeling are similar to what Processing came into oh so many years ago. There are quite a lot of capable tools, which experts can utilize to create amazing things. But, more average designers such as myself, find it extremely hard to get up that learning curve. I want all that power, but I don’t want to spend the 10,000 hours necessary to gain the expertise.
Also, I want to do animations:
What’s this? It’s just one of the many animations that are typical in Processing. A point on a circle makes what kind of motion when tracked over time? A sine/cosine wave of course! It’s easy to see.
Now, what if I have a cool idea for a new 3D printer, and I want to visualize the mechanics of the thing actually working? What package do I need for that? Well, you can pay thousands of dollars and get an all singing/dancing CAD program, which can probably simulate a fighter jet in a wind tunnel, or you could use Banate CAD.
The current release of Banate CAD has the ability to animate things. It’s fairly straight forward. You load up your design, and implement an object that has a “update()” method on it. That method will get called every clock “Tick()”, and you do whatever it is you want to do in terms up updating your geometry. Separate, the “Render()” method will be called, and you’ll see nifty animation.
This is a fun thing to do with metaballs, as seeing them interact and undulate in an animation is some great fun. Kind of like watching those lava lamps of old. And of course, things that are solids in your scene are printable.
So, there are actually two “Programs” in the package now.
BanateCAD.wlua – The standard 3D Banate CAD program
ProcessingShell.wlua – A Program that feels very similar to the Processing program
As the animation system is a bit finicky, the best way to run things is to actually bring up the Lua development environment (perhaps SciTE), and run from there. That way you can easily stop a runaway program.
All of the examples that are in the package should work correctly, without breaking things.
There are quite a few other features in this package as well, in various states of repair. There is in fact CSG support
At the moment, it is challenged. It only works with a sphere and cylinder, not with all the other shapes in Banate CAD in general. It will get there though, and be a lot simpler than what’s there now, but, since the code is a live working thing, it’s there, even though it is incomplete. Wear a seat belt if you try it out.
And so it goes. Where is it going? First of all, 3D modeling. That gives a lot of options for visualizing stuff that is in fact 3D, not just 3D models though. Then, add the 2D support, like in Processing, and you begin to get a very interesting system.
At some point, a .fab file will contain the information for both the 3D model itself, as well as the interface description so the user can input parameters to the design before printing, if they so choose. In order to make that a reality, the design files need to be able to put up a UI, that includes classic text, buttons, sliders, and deal with keyboard and mouse events. That’s how these two things fit together.
In the meanwhile, being able to learn a new system by leveraging books about other similar systems makes for a broad reach. For example, I picked up a few books on Processing, and just try to go through the examples. When I come across a feature Banate CAD does not currently support, I just add it, and improve the system overall.
And there you have it. Another week, another release.
I will be going on holiday in a couple of days, but there will surely be a release to ring in the new year.