MultiShady (click for more info) is a self-reconfiguring modular truss robot concept based on the Shady robot kinematics.
This page introduces MultiShadySim, the MultiShady simulator. You can run MultiShadySim as an applet by clicking on the link at the top of the page. The original MultiShady concept was a two-dimensional system. We've since extended the idea to 3D, but this simulator is two-dimensional. As described below, the simulator has a Scheme-language front end that you can use to implement specific simulations. The simulator models the kinematics of the system but not dynamics or collision. Some inverse kinematics is provided, but this is limited to the special case of MultiShady assemblies with tree topology. See MSim for a more general-purpose 3D simulator with arbitrary topology IK.
MultiShadySim shares the same codebase with ShadySim. Base capabilities for MultiShady are implemented in shady.common.multi (javadoc) and shady.common.ui.multi (javadoc). Simulator-specific code is in shady.sim.multi (javadoc) and shady.sim.ui.multi (javadoc).
MultiShadySim has a JScheme-based REPL-style interactive interpreter just as ShadySim does, and most functionality is inherited. The global variable
shady now refers to a specific member in the MultiShady, set by the most recent call to
(set-member index). All the original ShadySim API is available. Convenience bindings are added for MultiShadyCommonAPI (shady-multi-api.scm), MemberShadyCommonAPI (shady-multi-api.scm), MultiShadySimAPI (multi-sim-api.scm), MemberShadySimAPI (multi-sim-api.scm), and the public MultiUI (shady-multi-api.scm) and MultiSimUI (multi-sim-api.scm) APIs.
Additional scheme sugar is defined in shady-multi-extra.scm and multi-sim-extra.scm.
ShadySim is released in source form under the GNU GPL.
Same as for ShadySim.
THIS INFORMATION AND/OR SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS INFORMATION AND/OR SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.