BrainBlitz.org

August 29, 2008

BoxCAD Update

Filed under: BoxCAD, Programming — Anthony @ 12:39 am

BoxCAD is in a bit of a transition right now. It started a few months ago as a scopeless actionscript learning project, and gradually morphed into a potentially powerful development tool (not to mention an addictive “toy”). When I started working on BoxCAD, I only had a very rudimentary understanding of OOP. As my design thought process has shifted with my understanding of OOP, BoxCAD has undergone several major overhauls. Very little (maybe 5%) of the first functional version’s code exists at all.

 I am very slowly (for lack of time) performing what I hope is the last major architectural overhaul. Every component is nearly independant from every other component, with very tight interfaces between. But I do mean “nearly” – as in, it’s still pretty sloppy and idiosyncratic here and there.

The result of that is … quirks. Mainly in mouse handling, where I’ve simply lost track of what’s going on because so many different parts of BoxCAD have access to cursor states, cursor visibility, snap states, etc.

So it’s slightly irritating to use right at the moment. :D But it’s almost there, and once it is, it is going to be extemely easy to add new functionality and tools with a very simple, but comprehensive API.

Of course, the whole initial point of BoxCAD was for developers. At the moment, code dumping is not functional, because it’s obviously prequisite that the application be solidly capable of creating something to dump the code for. But, it is very nearly so, and dumping of at least standard objects and joints isn’t too far out. It is #2 on the priority list.

BoxCAD box2d TreadsOne neat recent addition is the automatic posting of screenshots on save, so you can show off your incredible designs… :D Here are some nice treads to get you started (new window):

Regarding big-picture future plans – one thing I’m particularily excited about is scripting. I found a run-time AS3 parser (can’t remember the link right at the moment) which means the scripting will be in AS3, and will have about the same API as the full-on API, AND it will be accessible from the browser – so experimenting and sharing will be very simple. So I’m HOPING maybe some form of a community will develop, and really push the capabilities of what flash and physics engines can do.

A couple of other things that keep me obcessively motivated:

  • When BoxCAD is mature with box2d, I want to develop a “Physics Abstraction Layer” (PAL), to allow other physics engines to be swapped in. I’d love to support a verlet engine like APE, and it would be fascinating to swap engines in near-realtime to see differences in behavior and speed. This would require that BoxCAD have it’s own, generic physics model with a public API. Then, to add a new engines, one would simply have to create a “driver” to map the engine to BoxCAD’s generic model. Needless to say, that is a ways off.
  • I almost had an accident when I thought of this one: BoxWARS! I would like add a multi-user mode to BoxCAD, with persistent “accounts.” Imagine something like – each user having a territory, starting with resources, building defenses, then building offense “robots” to attack other territories. Of course there would have to be limits on forces, velocities, masses etc, but it would basically be up to clever design to … “win.” And with AI via scripting… wow.

A couple of things I want to do really really bad, but can’t quite find the time:

  • I built a mechanical NOT gate the other day. Now I just need to build an AND gate, and I will have NAND – the fundamental building block of digital circuits. For some reason, I want to build some simple digital “circuits” with mechanical gates really really bad. :D
  • I’ve made a couple of feeble attempts to build a clock’s pendulum and escapement mechanism, but BoxCAD doesn’t quite have the mechanical functionality necessary to do so easily. But it can be done! It MUST be done…
  • I saw some demo’s of Papervision3D being used to create an extruded view of a box2d model. Adding that limited 3D viewing functionality would be freakin’ awesome. Can’t remember the link. I’ll post it later.
  • Print this article!
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • StumbleUpon
  • Yahoo! Bookmarks

July 31, 2008

BoxCAD 2.0 Alpha

Filed under: BoxCAD — Anthony @ 2:53 am

BoxCAD 2 has officially dethroned BoxCAD 1.  It is still very alpha, but there are so many cool new features, and I have so little time to work on it, I didn’t want to wait to post it. :D

New Features:

  • Springs (“Soft Joints”)
  • Body Controllers
  • Particle Engines
  • Gravity Objects (with negative gravity capability)
  • Parameter flexability with many tools (Motor Joint, Gravity Object, Spring Joint, etc)
  • Notepad (leave notes for whoever opens your file)
  • Full screen mode, fluid layout
  • World Snapshot & Restore
  • Revert to previous edit (when  you hit “play” and your world blows up – usually recovers from a physics engine crash)
  • Radial Array
  • True Metric Scaling
  • Auto Quality-Degrade when FPS drops too low
  • Idle Mode, so you don’t blow up your computer

Please Note! – This is alpha. Things are broken. Things may behave unexpectedly. Things are sometimes disabled when I find they are broken, but don’t have time to fix them. But 95% of it is beautiful and addictive.

And…

I need help! If you know AS3.0 and

  • C++
  • C#
  • Visual Basic
  • Java
  • Python
  • Any other language with a 2D physics engine

and ANY physics engine, I need translator classes for code dumps.
What’s Next?

After 2.0 is final, this is the current feature set planned for 3.0.

  • Multiple Shapes per Object 
  • Inclusion of advanced objects (i.e. gravity, particle engine) in code dump
  • Annotation Objects
  • Generic Properties Panel for EVERY object
  • Inclusion of joints with copy and copy derivatives
  • Library Object Import / Scene Merge
  • Adobe AIR file viewer
  • Image Import & Polygon Extraction
  • Polygon Decomposition OR Convex Polygon Type
  • FX – Gas, Wind, Force Wave, Liquid, ?
  • Breakable Joints
  • Deformable Bodies
  • Advanded Soft-Body Tools
  • Exhaustive Undo

Want to Help? Sponser It! Contact me if you find BoxCAD useful, inspiring, addictive, etc – and have some extra money burning a hole in your pocket. ; )

  • Print this article!
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • StumbleUpon
  • Yahoo! Bookmarks
« Newer Posts

Powered by WordPress