It is a big challenge to design a flexible and easy-to-use library. Developers need to balance between the complexity of API and the simplicity of ease of use. A good approach is to give the users options, but hide them with a default implementation that would fit for daily use. Advanced users may explore the API and fine tune the parameters.
From the perspective of developers, chart objects share lots of common attributes, most likely they all have axes, legend; some may have wall, grid. It would make sense to reuse the components. Furthermore, we should reuse some algorithms, for example, how to normalize the range of data.
In this series, we are going to discuss the chart design/development. This prototype is not merged into dojo trunk, so is one of its dependencies, dojox.gfx3d. You need to fetch the snapshot of dojox.gfx3d in my previous posts for testing.
NOTE I really enjoy series writing recently, it does not intimidate my readers to go though some complicated technical details, and helps me to organize the topic using divide-n-conquer approach.