Skip to content

Rible.jl Quick Start

Rible.jl is a multibody dynamics simulation platform for rigid-flexible robots. This page walks through a complete workflow — from modeling to solving — using a rolling superball tensegrity robot.

Installation

In the Julia REPL, run:

julia
import Pkg
Pkg.activate(; temp=true)
Pkg.add(url="https://github.com/Rible-Sim/Rible.jl")
Pkg.add(url="https://github.com/Rible-Sim/Rible.jl", subdir="RibleTensegrity")

Note: Rible.jl requires Julia ≥ 1.11.

Import

julia
using Rible
import Rible as RB
using RibleTensegrity
import RibleTensegrity as RT
using CircularArrays
using StaticArrays
using Rotations
using LinearAlgebra
using TypeSortedCollections

Build the Model

Rible.jl ships reusable example definitions under examples/. The following loads the superball tensegrity robot together with its rigid-bar helper:

julia
include(joinpath(pathof(Rible), "../../examples/bodies/rigidbar_nonsmooth_repro.jl"));
include(joinpath(pathof(Rible), "../../examples/robots/superball.jl"));

Create a superball instance with moderate rolling motion and disable external mesh loading to keep the example self-contained:

julia
l = 1.7 / 2
d = l / 2

bot = superball(0.0;
    origin_velocity = SVector(2.0, 1.0, 0.0),
    ω = SVector(0.0, 0.0, 1.0),
    μ = 0.05,
    e = 0.0,
    l,
    d,
    z0 = l^2 / (sqrt(5) * d) - 1e-3,
    loadmesh = false,
    visible = true,
    constrained = false,
)
Robot{RibleTensegrity.TensegrityStructure{TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}, Connectivity{Vector{Vector{Int64}}}, Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}, @NamedTuple{activated_bits::BitVector, persistent_bits::BitVector, friction_coefficients::Vector{Float64}, restitution_coefficients::Vector{Float64}, gaps::Vector{Float64}}, Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}}, ControlHub{Vector{CaptumGauge{RibleTensegrity.TensegrityStructure{TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}, Connectivity{Vector{Vector{Int64}}}, Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}, @NamedTuple{activated_bits::BitVector, persistent_bits::BitVector, friction_coefficients::Vector{Float64}, restitution_coefficients::Vector{Float64}, gaps::Vector{Float64}}, Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}}, Rible.FullStateCaptum}}, Vector{ErrorGauge{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, PositionCaptum, Vector{Float64}}}, Vector{Rible.RegisterActuator{Vector{@NamedTuple{cable::Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}, val_id::Int64}}, Rible.FunctionOperator{Main.var"#20#21", Main.var"#22#23", Vector{Float64}, Matrix{Float64}}, @NamedTuple{values::Vector{Float64}}}}, Coalition, @NamedTuple{c::Vector{Float64}, e::Vector{Float64}, u::Vector{Float64}}}, StructArrays.StructVector{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, @NamedTuple{t::Vector{Float64}, q::Vector{Vector{Float64}}, q̇::Vector{Vector{Float64}}, q̈::Vector{Vector{Float64}}, F::Vector{Vector{Float64}}, λ::Vector{Vector{Float64}}, s::Vector{Vector{Float64}}, p::Vector{Vector{Float64}}, c::Vector{Vector{Float64}}}, Int64}, Vector{Vector{Rible.Contact{Float64}}}, Vector{@NamedTuple{na::Int64, bodyid2act_idx::Vector{Vector{Int64}}, persistent_idx::Vector{Int64}, activated_bits::BitVector, H::LinearAlgebra.Diagonal{Float64, Vector{Float64}}, activated_restitution_coefficients::Vector{Float64}, D::Matrix{Float64}, Dper::Matrix{Float64}, Dimp::Matrix{Float64}, ∂Dq̇∂q::Matrix{Float64}, ∂DᵀΛ∂q::Matrix{Float64}, ŕ::Vector{Float64}, L::Matrix{Float64}, Lv::Matrix{Float64}, Λ::Vector{Float64}, Γ::Vector{Float64}}}, StructArrays.StructVector{@NamedTuple{c::Vector{Float64}, e::Vector{Float64}, u::Vector{Float64}}, @NamedTuple{c::Vector{Vector{Float64}}, e::Vector{Vector{Float64}}, u::Vector{Vector{Float64}}}, Int64}}(RibleTensegrity.TensegrityStructure{TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}, Connectivity{Vector{Vector{Int64}}}, Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}, @NamedTuple{activated_bits::BitVector, persistent_bits::BitVector, friction_coefficients::Vector{Float64}, restitution_coefficients::Vector{Float64}, gaps::Vector{Float64}}, Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}}(3, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}((RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}[RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...))],), ([1, 2, 3, 4, 5, 6],)), TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}((Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}[Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(1, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.1024241182534661, 180.1325627314032, [0.0, 0.408248290463863, -0.9128709291752768], [0.0, 73.53881079196992, -164.43777991533986], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [0.38013155617496425, 0.85, 0.5691973342624462], [1.575, 1.1292447290994878, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(2, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.5183281135857223, 180.1325627314032, [0.7302967433402215, 0.40824829046386296, 0.5477225575051662], [131.5502239322719, 73.53881079196991, 98.66266794920395], [-0.38013155617496436, 0.425, -0.001000000000000334], [0.38013155617496425, 0.85, 0.5691973342624462], [1.575, 0.8707552709005121, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(3, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.5183281135857223, 180.13256273140232, [-0.7302967433402215, 0.4082482904638631, -0.5477225575051662], [-131.55022393227128, 73.53881079196957, -98.66266794920347], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [-0.38013155617496425, 0.85, 0.9493288904374105], [1.575, 1.1292447290994878, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(4, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.10242411825346599, 180.1325627314032, [1.066462710204328e-16, 0.40824829046386296, 0.912870929175277], [1.9210466104658336e-14, 73.53881079196991, 164.43777991533992], [-0.38013155617496436, 0.425, -0.001000000000000334], [-0.38013155617496425, 0.85, 0.9493288904374105], [1.575, 0.8707552709005121, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(5, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.10242411825346615, 180.13256273140232, [-5.332313551021641e-17, -0.4082482904638631, 0.912870929175277], [-9.605233052329124e-15, -73.53881079196957, 164.43777991533912], [-0.3801315561749642, -0.425, -0.001000000000000112], [-0.38013155617496425, -0.85, 0.9493288904374105], [2.425, 0.8707552709005122, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(6, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.5183281135857221, 180.1325627314032, [-0.7302967433402215, -0.40824829046386296, -0.5477225575051662], [-131.5502239322719, -73.53881079196991, -98.66266794920395], [0.3801315561749643, -0.425, 1.519526224699857], [-0.38013155617496425, -0.85, 0.9493288904374105], [2.425, 1.1292447290994878, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(7, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.5183281135857221, 180.13256273140232, [0.7302967433402214, -0.4082482904638631, 0.5477225575051662], [131.55022393227125, -73.53881079196957, 98.66266794920347], [-0.3801315561749642, -0.425, -0.001000000000000112], [0.38013155617496425, -0.85, 0.5691973342624462], [2.425, 0.8707552709005122, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(8, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.10242411825346606, 180.1325627314032, [-5.33231355102164e-17, -0.40824829046386296, -0.912870929175277], [-9.605233052329168e-15, -73.53881079196991, -164.43777991533992], [0.3801315561749643, -0.425, 1.519526224699857], [0.38013155617496425, -0.85, 0.5691973342624462], [2.425, 1.1292447290994878, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(9, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.6890349773414988, 180.13256273140232, [0.5477225575051663, -0.8164965809277261, 0.18257418583505552], [98.66266794920348, -147.07762158393913, 32.88755598306784], [0.38013155617496425, 0.85, 0.5691973342624462], [0.9503288904374106, 0.0, 0.7592631123499285], [2.0, 1.3801315561749643, 0.0], [2.0, 2.2240236108833846, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(10, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.6890349773414988, 180.13256273140232, [0.5477225575051663, 0.8164965809277261, 0.18257418583505552], [98.66266794920348, 147.07762158393913, 32.88755598306784], [0.38013155617496425, -0.85, 0.5691973342624462], [0.9503288904374106, 0.0, 0.7592631123499285], [2.0, 1.3801315561749643, 0.0], [2.0, 2.2240236108833846, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0])))  …  Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(15, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.37865886142190497, 180.13256273140232, [-0.18257418583505547, 0.8164965809277261, 0.5477225575051662], [-32.887555983067834, 147.07762158393913, 98.66266794920347], [-0.38013155617496425, -0.85, 0.9493288904374105], [-0.5701973342624465, 0.0, 1.5195262246998569], [2.0, 0.6198684438250357, 0.0], [2.0, 0.15610794529157923, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(16, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.37865886142190497, 180.13256273140232, [-0.18257418583505547, -0.8164965809277261, 0.5477225575051662], [-32.887555983067834, -147.07762158393913, 98.66266794920347], [-0.38013155617496425, 0.85, 0.9493288904374105], [-0.5701973342624465, 0.0, 1.5195262246998569], [2.0, 0.6198684438250357, 0.0], [2.0, 0.15610794529157923, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(17, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.21415951998451976, 180.13256273140232, [-0.5477225575051663, 0.408248290463863, 0.7302967433402214], [-98.66266794920348, 73.53881079196955, 131.55022393227125], [0.9503288904374106, 0.0, 0.7592631123499285], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [2.0, 2.2240236108833846, 0.0], [1.575, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(18, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.009311283477587695, 180.1325627314032, [0.9128709291752769, 0.4082482904638629, 0.0], [164.4377799153399, 73.5388107919699, 0.0], [-0.5701973342624465, 0.0, 1.5195262246998569], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [2.0, 0.15610794529157923, 0.0], [1.575, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(19, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.21415951998451999, 180.1325627314032, [-0.547722557505166, -0.40824829046386296, 0.7302967433402215], [-98.66266794920391, -73.53881079196991, 131.5502239322719], [0.9503288904374106, 0.0, 0.7592631123499285], [0.3801315561749643, -0.425, 1.519526224699857], [2.0, 2.2240236108833846, 0.0], [2.425, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(20, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.009311283477587973, 180.1325627314032, [0.9128709291752769, -0.40824829046386296, 2.132925420408656e-16], [164.4377799153399, -73.53881079196991, 3.842093220931667e-14], [-0.5701973342624465, 0.0, 1.5195262246998569], [0.3801315561749643, -0.425, 1.519526224699857], [2.0, 0.15610794529157923, 0.0], [2.425, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(21, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.21415951998452012, 180.13256273140232, [0.5477225575051663, -0.4082482904638631, -0.7302967433402215], [98.66266794920348, -73.53881079196957, -131.55022393227128], [-0.9503288904374106, 0.0, 0.7592631123499284], [-0.3801315561749642, -0.425, -0.001000000000000112], [2.0, -0.22402361088338507, 0.0], [2.425, 0.8707552709005122, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(22, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.009311283477587973, 180.1325627314032, [-0.9128709291752769, -0.40824829046386296, 1.066462710204328e-16], [-164.4377799153399, -73.53881079196991, 1.9210466104658336e-14], [0.5701973342624466, 0.0, -0.001000000000000223], [-0.3801315561749642, -0.425, -0.001000000000000112], [2.0, 1.8438920547084208, 0.0], [2.425, 0.8707552709005122, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(23, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.21415951998452007, 180.1325627314032, [0.5477225575051659, 0.40824829046386296, -0.7302967433402215], [98.66266794920388, 73.53881079196991, -131.5502239322719], [-0.9503288904374106, 0.0, 0.7592631123499284], [-0.38013155617496436, 0.425, -0.001000000000000334], [2.0, -0.22402361088338507, 0.0], [1.575, 0.8707552709005121, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(24, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.041033140682851, -0.009311283477587695, 180.1325627314041, [-0.9128709291752769, 0.40824829046386285, -1.0664627102043277e-16], [-164.4377799153407, 73.53881079197026, -1.921046610465843e-14], [0.5701973342624466, 0.0, -0.001000000000000223], [-0.38013155617496436, 0.425, -0.001000000000000334], [2.0, 1.8438920547084208, 0.0], [1.575, 0.8707552709005121, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0])))],), ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  15, 16, 17, 18, 19, 20, 21, 22, 23, 24],)), Connectivity{Vector{Vector{Int64}}}(6, 24, 24, 24, 36, 6, 0, 6, 30, 30, 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  27, 28, 29, 30, 31, 32, 33, 34, 35, 36], [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18], [19, 20, 21, 22, 23, 24], [25, 26, 27, 28, 29, 30], [31, 32, 33, 34, 35, 36]], [[1], [2], [3], [4], [5], [6]], [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25], [26, 27, 28, 29, 30]], [Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[]  …  Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[]], [Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[]  …  Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[]], [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]], Signifier{Int64}[Signifier{Int64}(1, 1), Signifier{Int64}(1, 2), Signifier{Int64}(1, 3), Signifier{Int64}(2, 1), Signifier{Int64}(2, 2), Signifier{Int64}(2, 3), Signifier{Int64}(3, 1), Signifier{Int64}(3, 2), Signifier{Int64}(3, 3), Signifier{Int64}(4, 1), Signifier{Int64}(4, 2), Signifier{Int64}(4, 3), Signifier{Int64}(5, 1), Signifier{Int64}(5, 2), Signifier{Int64}(5, 3), Signifier{Int64}(6, 1), Signifier{Int64}(6, 2), Signifier{Int64}(6, 3)], [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18]], [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]], 19, 18, 18, 72, 90, [[19, 20, 21], [22, 23, 24], [25, 26, 27], [28, 29, 30], [31, 32, 33], [34, 35, 36], [37, 38, 39], [40, 41, 42], [43, 44, 45], [46, 47, 48]  …  [61, 62, 63], [64, 65, 66], [67, 68, 69], [70, 71, 72], [73, 74, 75], [76, 77, 78], [79, 80, 81], [82, 83, 84], [85, 86, 87], [88, 89, 90]], [[1, 2, 3, 4, 5, 6, 13, 14, 15, 16, 17, 18], [1, 2, 3, 4, 5, 6, 13, 14, 15, 16, 17, 18], [1, 2, 3, 4, 5, 6, 19, 20, 21, 22, 23, 24], [1, 2, 3, 4, 5, 6, 19, 20, 21, 22, 23, 24], [7, 8, 9, 10, 11, 12, 19, 20, 21, 22, 23, 24], [7, 8, 9, 10, 11, 12, 19, 20, 21, 22, 23, 24], [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], [13, 14, 15, 16, 17, 18, 25, 26, 27, 28, 29, 30], [13, 14, 15, 16, 17, 18, 25, 26, 27, 28, 29, 30]  …  [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], [25, 26, 27, 28, 29, 30, 1, 2, 3, 4, 5, 6], [25, 26, 27, 28, 29, 30, 1, 2, 3, 4, 5, 6], [25, 26, 27, 28, 29, 30, 7, 8, 9, 10, 11, 12], [25, 26, 27, 28, 29, 30, 7, 8, 9, 10, 11, 12], [31, 32, 33, 34, 35, 36, 7, 8, 9, 10, 11, 12], [31, 32, 33, 34, 35, 36, 7, 8, 9, 10, 11, 12], [31, 32, 33, 34, 35, 36, 1, 2, 3, 4, 5, 6], [31, 32, 33, 34, 35, 36, 1, 2, 3, 4, 5, 6]]), Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}(CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}(0.0, [0.38013155617496425, 0.42499999999999993, 1.5195262246998569, -0.44721359549995787, 4.4408920985006264e-17, -0.8944271909999157, -0.3801315561749642, -0.425, -0.001000000000000112, 0.4472135954999578  …  0.7592631123499285, -0.8944271909999157, 0.0, 0.44721359549995787, -0.9503288904374106, 0.0, 0.7592631123499284, 0.8944271909999157, 0.0, -0.44721359549995787], [1.575, 1.1292447290994878, 0.0, -1.509903313490213e-17, -0.1520526224699857, 0.0, 2.425, 0.8707552709005122, 0.0, 0.0  …  0.0, 0.0, -1.2164209797598855, 0.0, 2.0, -0.22402361088338507, 0.0, 0.0, 1.2164209797598855, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0800249583553523e-12, -2.984279490192421e-13, 1.2505552149377763e-12, 335.453071027295, -6.039613253960853e-13, 670.906142054587, -2.2737367544323206e-13, 3.410605131648481e-13, -1.9895196601282805e-12, -335.4530710272935  …  5.684341886080801e-13, 670.9061420545863, -2.4158453015843368e-14, -335.4530710272918, -2.2737367544323206e-12, 6.963318810448982e-13, 3.126388037344441e-13, -670.9061420545884, 6.039613253960853e-13, 335.4530710272934], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float64[], [7.875, 5.0, 0.0, 6.693750000000001, 4.066903300442394, 0.0, 12.125, 5.0, 0.0, 10.306250000000002  …  0.0, 8.5, 3.5930059604109363, 0.0, 10.0, 4.049671109562588, 0.0, 8.500000000000002, 4.906994039589064, 0.0], [2.1385526102475876e-33, 1.7000000000000004, 0.8500000000000002, 3.929684991464909e-33, 1.7000000000000004, 0.8500000000000002, 0.0, 1.7, 0.85, 0.0  …  0.996, 4000.0, 0.0, 0.996, 4000.0, 0.0, 0.996, 4000.0, 0.0, 0.996]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}[CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [0.38013155617496425, 0.42499999999999993, 1.5195262246998569, -0.44721359549995787, 4.4408920985006264e-17, -0.8944271909999157], [1.575, 1.1292447290994878, 0.0, -1.509903313490213e-17, -0.1520526224699857, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0800249583553523e-12, -2.984279490192421e-13, 1.2505552149377763e-12, 335.453071027295, -6.039613253960853e-13, 670.906142054587], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [2.1385526102475876e-33, 1.7000000000000004, 0.8500000000000002]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [-0.3801315561749642, -0.425, -0.001000000000000112, 0.4472135954999578, 0.0, 0.8944271909999157], [2.425, 0.8707552709005122, 0.0, 0.0, 0.15205262246998566, -0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-2.2737367544323206e-13, 3.410605131648481e-13, -1.9895196601282805e-12, -335.4530710272935, 1.3402603797652236e-45, -670.9061420545871], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [3.929684991464909e-33, 1.7000000000000004, 0.8500000000000002]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [0.38013155617496425, 0.85, 0.5691973342624462, 0.0, -1.0, 0.0], [2.0, 1.3801315561749643, 0.0, -0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-1.8474111129762605e-13, -4.547473508864641e-13, 1.9895196601282805e-13, 3.986144747614162e-13, 750.0958700780913, 6.281197784119285e-13], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.7, 0.85]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [-0.38013155617496425, -0.85, 0.9493288904374105, 0.0, 1.0, 0.0], [2.0, 0.6198684438250357, 0.0, 0.0, -0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [5.258016244624741e-13, 0.0, -3.410605131648481e-13, -1.0871303857129532e-13, -750.0958700780901, -1.377031821903074e-12], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.7, 0.85]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [0.9503288904374105, 0.0, 0.7592631123499285, -0.8944271909999157, 0.0, 0.44721359549995787], [2.0, 2.2240236108833846, 0.0, 0.0, -1.2164209797598855, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0800249583553523e-12, -3.694822225952521e-13, 5.684341886080801e-13, 670.9061420545863, -2.4158453015843368e-14, -335.4530710272918], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-1.1102230246251568e-16, 1.7000000000000002, 0.8500000000000001]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [-0.9503288904374106, 0.0, 0.7592631123499284, 0.8944271909999157, 0.0, -0.44721359549995787], [2.0, -0.22402361088338507, 0.0, 0.0, 1.2164209797598855, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-2.2737367544323206e-12, 6.963318810448982e-13, 3.126388037344441e-13, -670.9061420545884, 6.039613253960853e-13, 335.4530710272934], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [2.6359719861470482e-34, 1.7000000000000004, 0.8500000000000002])]), (activated_bits = Bool[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], persistent_bits = Bool[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], friction_coefficients = [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05], restitution_coefficients = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], gaps = [Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf]), Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}(InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5  …  32, 35, 33, 36, 31, 34, 32, 35, 33, 36], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5  …  32, 32, 33, 33, 34, 34, 35, 35, 36, 36], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668  …  5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 36, 36), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5  …  32, 35, 33, 36, 31, 34, 32, 35, 33, 36], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5  …  32, 32, 33, 33, 34, 34, 35, 35, 36, 36], [0.8000000000000005, -0.7058823529411767, 0.8000000000000005, -0.7058823529411767, 0.8000000000000005, -0.7058823529411767, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194  …  0.8000000000000005, -0.7058823529411767, 0.8000000000000005, -0.7058823529411767, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 36, 36), sparse(Int64[], Int64[], Float64[], 36, 36), sparse(Int64[], Int64[], Float64[], 36, 36), sparsevec(Int64[], Float64[], 36), sparsevec(Int64[], Float64[], 36), true))), ControlHub{Vector{CaptumGauge{RibleTensegrity.TensegrityStructure{TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}, Connectivity{Vector{Vector{Int64}}}, Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}, @NamedTuple{activated_bits::BitVector, persistent_bits::BitVector, friction_coefficients::Vector{Float64}, restitution_coefficients::Vector{Float64}, gaps::Vector{Float64}}, Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}}, Rible.FullStateCaptum}}, Vector{ErrorGauge{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, PositionCaptum, Vector{Float64}}}, Vector{Rible.RegisterActuator{Vector{@NamedTuple{cable::Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}, val_id::Int64}}, Rible.FunctionOperator{Main.var"#20#21", Main.var"#22#23", Vector{Float64}, Matrix{Float64}}, @NamedTuple{values::Vector{Float64}}}}, Coalition, @NamedTuple{c::Vector{Float64}, e::Vector{Float64}, u::Vector{Float64}}}(CaptumGauge{RibleTensegrity.TensegrityStructure{TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}, Connectivity{Vector{Vector{Int64}}}, Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}, @NamedTuple{activated_bits::BitVector, persistent_bits::BitVector, friction_coefficients::Vector{Float64}, restitution_coefficients::Vector{Float64}, gaps::Vector{Float64}}, Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}}, Rible.FullStateCaptum}[CaptumGauge{RibleTensegrity.TensegrityStructure{TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}, Connectivity{Vector{Vector{Int64}}}, Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}, @NamedTuple{activated_bits::BitVector, persistent_bits::BitVector, friction_coefficients::Vector{Float64}, restitution_coefficients::Vector{Float64}, gaps::Vector{Float64}}, Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}}, Rible.FullStateCaptum}(1, RibleTensegrity.TensegrityStructure{TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}, Connectivity{Vector{Vector{Int64}}}, Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}, @NamedTuple{activated_bits::BitVector, persistent_bits::BitVector, friction_coefficients::Vector{Float64}, restitution_coefficients::Vector{Float64}, gaps::Vector{Float64}}, Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}}(3, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}((RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}[RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...))],), ([1, 2, 3, 4, 5, 6],)), TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}((Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}[Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(1, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.1024241182534661, 180.1325627314032, [0.0, 0.408248290463863, -0.9128709291752768], [0.0, 73.53881079196992, -164.43777991533986], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [0.38013155617496425, 0.85, 0.5691973342624462], [1.575, 1.1292447290994878, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(2, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.5183281135857223, 180.1325627314032, [0.7302967433402215, 0.40824829046386296, 0.5477225575051662], [131.5502239322719, 73.53881079196991, 98.66266794920395], [-0.38013155617496436, 0.425, -0.001000000000000334], [0.38013155617496425, 0.85, 0.5691973342624462], [1.575, 0.8707552709005121, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(3, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.5183281135857223, 180.13256273140232, [-0.7302967433402215, 0.4082482904638631, -0.5477225575051662], [-131.55022393227128, 73.53881079196957, -98.66266794920347], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [-0.38013155617496425, 0.85, 0.9493288904374105], [1.575, 1.1292447290994878, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(4, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.10242411825346599, 180.1325627314032, [1.066462710204328e-16, 0.40824829046386296, 0.912870929175277], [1.9210466104658336e-14, 73.53881079196991, 164.43777991533992], [-0.38013155617496436, 0.425, -0.001000000000000334], [-0.38013155617496425, 0.85, 0.9493288904374105], [1.575, 0.8707552709005121, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(5, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.10242411825346615, 180.13256273140232, [-5.332313551021641e-17, -0.4082482904638631, 0.912870929175277], [-9.605233052329124e-15, -73.53881079196957, 164.43777991533912], [-0.3801315561749642, -0.425, -0.001000000000000112], [-0.38013155617496425, -0.85, 0.9493288904374105], [2.425, 0.8707552709005122, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(6, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.5183281135857221, 180.1325627314032, [-0.7302967433402215, -0.40824829046386296, -0.5477225575051662], [-131.5502239322719, -73.53881079196991, -98.66266794920395], [0.3801315561749643, -0.425, 1.519526224699857], [-0.38013155617496425, -0.85, 0.9493288904374105], [2.425, 1.1292447290994878, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(7, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.5183281135857221, 180.13256273140232, [0.7302967433402214, -0.4082482904638631, 0.5477225575051662], [131.55022393227125, -73.53881079196957, 98.66266794920347], [-0.3801315561749642, -0.425, -0.001000000000000112], [0.38013155617496425, -0.85, 0.5691973342624462], [2.425, 0.8707552709005122, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(8, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.10242411825346606, 180.1325627314032, [-5.33231355102164e-17, -0.40824829046386296, -0.912870929175277], [-9.605233052329168e-15, -73.53881079196991, -164.43777991533992], [0.3801315561749643, -0.425, 1.519526224699857], [0.38013155617496425, -0.85, 0.5691973342624462], [2.425, 1.1292447290994878, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(9, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.6890349773414988, 180.13256273140232, [0.5477225575051663, -0.8164965809277261, 0.18257418583505552], [98.66266794920348, -147.07762158393913, 32.88755598306784], [0.38013155617496425, 0.85, 0.5691973342624462], [0.9503288904374106, 0.0, 0.7592631123499285], [2.0, 1.3801315561749643, 0.0], [2.0, 2.2240236108833846, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(10, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.6890349773414988, 180.13256273140232, [0.5477225575051663, 0.8164965809277261, 0.18257418583505552], [98.66266794920348, 147.07762158393913, 32.88755598306784], [0.38013155617496425, -0.85, 0.5691973342624462], [0.9503288904374106, 0.0, 0.7592631123499285], [2.0, 1.3801315561749643, 0.0], [2.0, 2.2240236108833846, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0])))  …  Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(15, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.37865886142190497, 180.13256273140232, [-0.18257418583505547, 0.8164965809277261, 0.5477225575051662], [-32.887555983067834, 147.07762158393913, 98.66266794920347], [-0.38013155617496425, -0.85, 0.9493288904374105], [-0.5701973342624465, 0.0, 1.5195262246998569], [2.0, 0.6198684438250357, 0.0], [2.0, 0.15610794529157923, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(16, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.37865886142190497, 180.13256273140232, [-0.18257418583505547, -0.8164965809277261, 0.5477225575051662], [-32.887555983067834, -147.07762158393913, 98.66266794920347], [-0.38013155617496425, 0.85, 0.9493288904374105], [-0.5701973342624465, 0.0, 1.5195262246998569], [2.0, 0.6198684438250357, 0.0], [2.0, 0.15610794529157923, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(17, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.21415951998451976, 180.13256273140232, [-0.5477225575051663, 0.408248290463863, 0.7302967433402214], [-98.66266794920348, 73.53881079196955, 131.55022393227125], [0.9503288904374106, 0.0, 0.7592631123499285], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [2.0, 2.2240236108833846, 0.0], [1.575, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(18, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.009311283477587695, 180.1325627314032, [0.9128709291752769, 0.4082482904638629, 0.0], [164.4377799153399, 73.5388107919699, 0.0], [-0.5701973342624465, 0.0, 1.5195262246998569], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [2.0, 0.15610794529157923, 0.0], [1.575, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(19, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.21415951998451999, 180.1325627314032, [-0.547722557505166, -0.40824829046386296, 0.7302967433402215], [-98.66266794920391, -73.53881079196991, 131.5502239322719], [0.9503288904374106, 0.0, 0.7592631123499285], [0.3801315561749643, -0.425, 1.519526224699857], [2.0, 2.2240236108833846, 0.0], [2.425, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(20, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.009311283477587973, 180.1325627314032, [0.9128709291752769, -0.40824829046386296, 2.132925420408656e-16], [164.4377799153399, -73.53881079196991, 3.842093220931667e-14], [-0.5701973342624465, 0.0, 1.5195262246998569], [0.3801315561749643, -0.425, 1.519526224699857], [2.0, 0.15610794529157923, 0.0], [2.425, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(21, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.21415951998452012, 180.13256273140232, [0.5477225575051663, -0.4082482904638631, -0.7302967433402215], [98.66266794920348, -73.53881079196957, -131.55022393227128], [-0.9503288904374106, 0.0, 0.7592631123499284], [-0.3801315561749642, -0.425, -0.001000000000000112], [2.0, -0.22402361088338507, 0.0], [2.425, 0.8707552709005122, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(22, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.009311283477587973, 180.1325627314032, [-0.9128709291752769, -0.40824829046386296, 1.066462710204328e-16], [-164.4377799153399, -73.53881079196991, 1.9210466104658336e-14], [0.5701973342624466, 0.0, -0.001000000000000223], [-0.3801315561749642, -0.425, -0.001000000000000112], [2.0, 1.8438920547084208, 0.0], [2.425, 0.8707552709005122, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(23, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.21415951998452007, 180.1325627314032, [0.5477225575051659, 0.40824829046386296, -0.7302967433402215], [98.66266794920388, 73.53881079196991, -131.5502239322719], [-0.9503288904374106, 0.0, 0.7592631123499284], [-0.38013155617496436, 0.425, -0.001000000000000334], [2.0, -0.22402361088338507, 0.0], [1.575, 0.8707552709005121, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(24, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.041033140682851, -0.009311283477587695, 180.1325627314041, [-0.9128709291752769, 0.40824829046386285, -1.0664627102043277e-16], [-164.4377799153407, 73.53881079197026, -1.921046610465843e-14], [0.5701973342624466, 0.0, -0.001000000000000223], [-0.38013155617496436, 0.425, -0.001000000000000334], [2.0, 1.8438920547084208, 0.0], [1.575, 0.8707552709005121, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0])))],), ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  15, 16, 17, 18, 19, 20, 21, 22, 23, 24],)), Connectivity{Vector{Vector{Int64}}}(6, 24, 24, 24, 36, 6, 0, 6, 30, 30, 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  27, 28, 29, 30, 31, 32, 33, 34, 35, 36], [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18], [19, 20, 21, 22, 23, 24], [25, 26, 27, 28, 29, 30], [31, 32, 33, 34, 35, 36]], [[1], [2], [3], [4], [5], [6]], [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25], [26, 27, 28, 29, 30]], [Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[]  …  Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[]], [Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[]  …  Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[]], [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]], Signifier{Int64}[Signifier{Int64}(1, 1), Signifier{Int64}(1, 2), Signifier{Int64}(1, 3), Signifier{Int64}(2, 1), Signifier{Int64}(2, 2), Signifier{Int64}(2, 3), Signifier{Int64}(3, 1), Signifier{Int64}(3, 2), Signifier{Int64}(3, 3), Signifier{Int64}(4, 1), Signifier{Int64}(4, 2), Signifier{Int64}(4, 3), Signifier{Int64}(5, 1), Signifier{Int64}(5, 2), Signifier{Int64}(5, 3), Signifier{Int64}(6, 1), Signifier{Int64}(6, 2), Signifier{Int64}(6, 3)], [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18]], [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]], 19, 18, 18, 72, 90, [[19, 20, 21], [22, 23, 24], [25, 26, 27], [28, 29, 30], [31, 32, 33], [34, 35, 36], [37, 38, 39], [40, 41, 42], [43, 44, 45], [46, 47, 48]  …  [61, 62, 63], [64, 65, 66], [67, 68, 69], [70, 71, 72], [73, 74, 75], [76, 77, 78], [79, 80, 81], [82, 83, 84], [85, 86, 87], [88, 89, 90]], [[1, 2, 3, 4, 5, 6, 13, 14, 15, 16, 17, 18], [1, 2, 3, 4, 5, 6, 13, 14, 15, 16, 17, 18], [1, 2, 3, 4, 5, 6, 19, 20, 21, 22, 23, 24], [1, 2, 3, 4, 5, 6, 19, 20, 21, 22, 23, 24], [7, 8, 9, 10, 11, 12, 19, 20, 21, 22, 23, 24], [7, 8, 9, 10, 11, 12, 19, 20, 21, 22, 23, 24], [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], [13, 14, 15, 16, 17, 18, 25, 26, 27, 28, 29, 30], [13, 14, 15, 16, 17, 18, 25, 26, 27, 28, 29, 30]  …  [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], [25, 26, 27, 28, 29, 30, 1, 2, 3, 4, 5, 6], [25, 26, 27, 28, 29, 30, 1, 2, 3, 4, 5, 6], [25, 26, 27, 28, 29, 30, 7, 8, 9, 10, 11, 12], [25, 26, 27, 28, 29, 30, 7, 8, 9, 10, 11, 12], [31, 32, 33, 34, 35, 36, 7, 8, 9, 10, 11, 12], [31, 32, 33, 34, 35, 36, 7, 8, 9, 10, 11, 12], [31, 32, 33, 34, 35, 36, 1, 2, 3, 4, 5, 6], [31, 32, 33, 34, 35, 36, 1, 2, 3, 4, 5, 6]]), Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}(CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}(0.0, [0.38013155617496425, 0.42499999999999993, 1.5195262246998569, -0.44721359549995787, 4.4408920985006264e-17, -0.8944271909999157, -0.3801315561749642, -0.425, -0.001000000000000112, 0.4472135954999578  …  0.7592631123499285, -0.8944271909999157, 0.0, 0.44721359549995787, -0.9503288904374106, 0.0, 0.7592631123499284, 0.8944271909999157, 0.0, -0.44721359549995787], [1.575, 1.1292447290994878, 0.0, -1.509903313490213e-17, -0.1520526224699857, 0.0, 2.425, 0.8707552709005122, 0.0, 0.0  …  0.0, 0.0, -1.2164209797598855, 0.0, 2.0, -0.22402361088338507, 0.0, 0.0, 1.2164209797598855, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0800249583553523e-12, -2.984279490192421e-13, 1.2505552149377763e-12, 335.453071027295, -6.039613253960853e-13, 670.906142054587, -2.2737367544323206e-13, 3.410605131648481e-13, -1.9895196601282805e-12, -335.4530710272935  …  5.684341886080801e-13, 670.9061420545863, -2.4158453015843368e-14, -335.4530710272918, -2.2737367544323206e-12, 6.963318810448982e-13, 3.126388037344441e-13, -670.9061420545884, 6.039613253960853e-13, 335.4530710272934], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float64[], [7.875, 5.0, 0.0, 6.693750000000001, 4.066903300442394, 0.0, 12.125, 5.0, 0.0, 10.306250000000002  …  0.0, 8.5, 3.5930059604109363, 0.0, 10.0, 4.049671109562588, 0.0, 8.500000000000002, 4.906994039589064, 0.0], [2.1385526102475876e-33, 1.7000000000000004, 0.8500000000000002, 3.929684991464909e-33, 1.7000000000000004, 0.8500000000000002, 0.0, 1.7, 0.85, 0.0  …  0.996, 4000.0, 0.0, 0.996, 4000.0, 0.0, 0.996, 4000.0, 0.0, 0.996]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}[CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [0.38013155617496425, 0.42499999999999993, 1.5195262246998569, -0.44721359549995787, 4.4408920985006264e-17, -0.8944271909999157], [1.575, 1.1292447290994878, 0.0, -1.509903313490213e-17, -0.1520526224699857, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0800249583553523e-12, -2.984279490192421e-13, 1.2505552149377763e-12, 335.453071027295, -6.039613253960853e-13, 670.906142054587], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [2.1385526102475876e-33, 1.7000000000000004, 0.8500000000000002]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [-0.3801315561749642, -0.425, -0.001000000000000112, 0.4472135954999578, 0.0, 0.8944271909999157], [2.425, 0.8707552709005122, 0.0, 0.0, 0.15205262246998566, -0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-2.2737367544323206e-13, 3.410605131648481e-13, -1.9895196601282805e-12, -335.4530710272935, 1.3402603797652236e-45, -670.9061420545871], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [3.929684991464909e-33, 1.7000000000000004, 0.8500000000000002]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [0.38013155617496425, 0.85, 0.5691973342624462, 0.0, -1.0, 0.0], [2.0, 1.3801315561749643, 0.0, -0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-1.8474111129762605e-13, -4.547473508864641e-13, 1.9895196601282805e-13, 3.986144747614162e-13, 750.0958700780913, 6.281197784119285e-13], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.7, 0.85]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [-0.38013155617496425, -0.85, 0.9493288904374105, 0.0, 1.0, 0.0], [2.0, 0.6198684438250357, 0.0, 0.0, -0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [5.258016244624741e-13, 0.0, -3.410605131648481e-13, -1.0871303857129532e-13, -750.0958700780901, -1.377031821903074e-12], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.7, 0.85]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [0.9503288904374105, 0.0, 0.7592631123499285, -0.8944271909999157, 0.0, 0.44721359549995787], [2.0, 2.2240236108833846, 0.0, 0.0, -1.2164209797598855, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0800249583553523e-12, -3.694822225952521e-13, 5.684341886080801e-13, 670.9061420545863, -2.4158453015843368e-14, -335.4530710272918], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-1.1102230246251568e-16, 1.7000000000000002, 0.8500000000000001]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [-0.9503288904374106, 0.0, 0.7592631123499284, 0.8944271909999157, 0.0, -0.44721359549995787], [2.0, -0.22402361088338507, 0.0, 0.0, 1.2164209797598855, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-2.2737367544323206e-12, 6.963318810448982e-13, 3.126388037344441e-13, -670.9061420545884, 6.039613253960853e-13, 335.4530710272934], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [2.6359719861470482e-34, 1.7000000000000004, 0.8500000000000002])]), (activated_bits = Bool[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], persistent_bits = Bool[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], friction_coefficients = [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05], restitution_coefficients = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], gaps = [Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf]), Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}(InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5  …  32, 35, 33, 36, 31, 34, 32, 35, 33, 36], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5  …  32, 32, 33, 33, 34, 34, 35, 35, 36, 36], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668  …  5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 36, 36), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5  …  32, 35, 33, 36, 31, 34, 32, 35, 33, 36], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5  …  32, 32, 33, 33, 34, 34, 35, 35, 36, 36], [0.8000000000000005, -0.7058823529411767, 0.8000000000000005, -0.7058823529411767, 0.8000000000000005, -0.7058823529411767, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194  …  0.8000000000000005, -0.7058823529411767, 0.8000000000000005, -0.7058823529411767, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 36, 36), sparse(Int64[], Int64[], Float64[], 36, 36), sparse(Int64[], Int64[], Float64[], 36, 36), sparsevec(Int64[], Float64[], 36), sparsevec(Int64[], Float64[], 36), true))), Rible.FullStateCaptum())], ErrorGauge{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, PositionCaptum, Vector{Float64}}[ErrorGauge{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, PositionCaptum, Vector{Float64}}(1, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), PositionCaptum(), [5.0, 0.0, 0.0])], Rible.RegisterActuator{Vector{@NamedTuple{cable::Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}, val_id::Int64}}, Rible.FunctionOperator{Main.var"#20#21", Main.var"#22#23", Vector{Float64}, Matrix{Float64}}, @NamedTuple{values::Vector{Float64}}}[Rible.RegisterActuator{Vector{@NamedTuple{cable::Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}, val_id::Int64}}, Rible.FunctionOperator{Main.var"#20#21", Main.var"#22#23", Vector{Float64}, Matrix{Float64}}, @NamedTuple{values::Vector{Float64}}}(1, @NamedTuple{cable::Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}, val_id::Int64}[(cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(1, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.1024241182534661, 180.1325627314032, [0.0, 0.408248290463863, -0.9128709291752768], [0.0, 73.53881079196992, -164.43777991533986], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [0.38013155617496425, 0.85, 0.5691973342624462], [1.575, 1.1292447290994878, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 1), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(2, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.5183281135857223, 180.1325627314032, [0.7302967433402215, 0.40824829046386296, 0.5477225575051662], [131.5502239322719, 73.53881079196991, 98.66266794920395], [-0.38013155617496436, 0.425, -0.001000000000000334], [0.38013155617496425, 0.85, 0.5691973342624462], [1.575, 0.8707552709005121, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 2), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(3, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.5183281135857223, 180.13256273140232, [-0.7302967433402215, 0.4082482904638631, -0.5477225575051662], [-131.55022393227128, 73.53881079196957, -98.66266794920347], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [-0.38013155617496425, 0.85, 0.9493288904374105], [1.575, 1.1292447290994878, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 3), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(4, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.10242411825346599, 180.1325627314032, [1.066462710204328e-16, 0.40824829046386296, 0.912870929175277], [1.9210466104658336e-14, 73.53881079196991, 164.43777991533992], [-0.38013155617496436, 0.425, -0.001000000000000334], [-0.38013155617496425, 0.85, 0.9493288904374105], [1.575, 0.8707552709005121, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 4), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(5, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.10242411825346615, 180.13256273140232, [-5.332313551021641e-17, -0.4082482904638631, 0.912870929175277], [-9.605233052329124e-15, -73.53881079196957, 164.43777991533912], [-0.3801315561749642, -0.425, -0.001000000000000112], [-0.38013155617496425, -0.85, 0.9493288904374105], [2.425, 0.8707552709005122, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 5), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(6, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.5183281135857221, 180.1325627314032, [-0.7302967433402215, -0.40824829046386296, -0.5477225575051662], [-131.5502239322719, -73.53881079196991, -98.66266794920395], [0.3801315561749643, -0.425, 1.519526224699857], [-0.38013155617496425, -0.85, 0.9493288904374105], [2.425, 1.1292447290994878, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 6), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(7, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.5183281135857221, 180.13256273140232, [0.7302967433402214, -0.4082482904638631, 0.5477225575051662], [131.55022393227125, -73.53881079196957, 98.66266794920347], [-0.3801315561749642, -0.425, -0.001000000000000112], [0.38013155617496425, -0.85, 0.5691973342624462], [2.425, 0.8707552709005122, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 7), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(8, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.10242411825346606, 180.1325627314032, [-5.33231355102164e-17, -0.40824829046386296, -0.912870929175277], [-9.605233052329168e-15, -73.53881079196991, -164.43777991533992], [0.3801315561749643, -0.425, 1.519526224699857], [0.38013155617496425, -0.85, 0.5691973342624462], [2.425, 1.1292447290994878, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 8), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(9, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.6890349773414988, 180.13256273140232, [0.5477225575051663, -0.8164965809277261, 0.18257418583505552], [98.66266794920348, -147.07762158393913, 32.88755598306784], [0.38013155617496425, 0.85, 0.5691973342624462], [0.9503288904374106, 0.0, 0.7592631123499285], [2.0, 1.3801315561749643, 0.0], [2.0, 2.2240236108833846, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 9), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(10, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.6890349773414988, 180.13256273140232, [0.5477225575051663, 0.8164965809277261, 0.18257418583505552], [98.66266794920348, 147.07762158393913, 32.88755598306784], [0.38013155617496425, -0.85, 0.5691973342624462], [0.9503288904374106, 0.0, 0.7592631123499285], [2.0, 1.3801315561749643, 0.0], [2.0, 2.2240236108833846, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 10)  …  (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(15, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.37865886142190497, 180.13256273140232, [-0.18257418583505547, 0.8164965809277261, 0.5477225575051662], [-32.887555983067834, 147.07762158393913, 98.66266794920347], [-0.38013155617496425, -0.85, 0.9493288904374105], [-0.5701973342624465, 0.0, 1.5195262246998569], [2.0, 0.6198684438250357, 0.0], [2.0, 0.15610794529157923, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 15), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(16, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.37865886142190497, 180.13256273140232, [-0.18257418583505547, -0.8164965809277261, 0.5477225575051662], [-32.887555983067834, -147.07762158393913, 98.66266794920347], [-0.38013155617496425, 0.85, 0.9493288904374105], [-0.5701973342624465, 0.0, 1.5195262246998569], [2.0, 0.6198684438250357, 0.0], [2.0, 0.15610794529157923, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 16), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(17, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.21415951998451976, 180.13256273140232, [-0.5477225575051663, 0.408248290463863, 0.7302967433402214], [-98.66266794920348, 73.53881079196955, 131.55022393227125], [0.9503288904374106, 0.0, 0.7592631123499285], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [2.0, 2.2240236108833846, 0.0], [1.575, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 17), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(18, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.009311283477587695, 180.1325627314032, [0.9128709291752769, 0.4082482904638629, 0.0], [164.4377799153399, 73.5388107919699, 0.0], [-0.5701973342624465, 0.0, 1.5195262246998569], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [2.0, 0.15610794529157923, 0.0], [1.575, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 18), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(19, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.21415951998451999, 180.1325627314032, [-0.547722557505166, -0.40824829046386296, 0.7302967433402215], [-98.66266794920391, -73.53881079196991, 131.5502239322719], [0.9503288904374106, 0.0, 0.7592631123499285], [0.3801315561749643, -0.425, 1.519526224699857], [2.0, 2.2240236108833846, 0.0], [2.425, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 19), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(20, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.009311283477587973, 180.1325627314032, [0.9128709291752769, -0.40824829046386296, 2.132925420408656e-16], [164.4377799153399, -73.53881079196991, 3.842093220931667e-14], [-0.5701973342624465, 0.0, 1.5195262246998569], [0.3801315561749643, -0.425, 1.519526224699857], [2.0, 0.15610794529157923, 0.0], [2.425, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 20), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(21, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.21415951998452012, 180.13256273140232, [0.5477225575051663, -0.4082482904638631, -0.7302967433402215], [98.66266794920348, -73.53881079196957, -131.55022393227128], [-0.9503288904374106, 0.0, 0.7592631123499284], [-0.3801315561749642, -0.425, -0.001000000000000112], [2.0, -0.22402361088338507, 0.0], [2.425, 0.8707552709005122, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 21), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(22, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.009311283477587973, 180.1325627314032, [-0.9128709291752769, -0.40824829046386296, 1.066462710204328e-16], [-164.4377799153399, -73.53881079196991, 1.9210466104658336e-14], [0.5701973342624466, 0.0, -0.001000000000000223], [-0.3801315561749642, -0.425, -0.001000000000000112], [2.0, 1.8438920547084208, 0.0], [2.425, 0.8707552709005122, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 22), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(23, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.21415951998452007, 180.1325627314032, [0.5477225575051659, 0.40824829046386296, -0.7302967433402215], [98.66266794920388, 73.53881079196991, -131.5502239322719], [-0.9503288904374106, 0.0, 0.7592631123499284], [-0.38013155617496436, 0.425, -0.001000000000000334], [2.0, -0.22402361088338507, 0.0], [1.575, 0.8707552709005121, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 23), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(24, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.041033140682851, -0.009311283477587695, 180.1325627314041, [-0.9128709291752769, 0.40824829046386285, -1.0664627102043277e-16], [-164.4377799153407, 73.53881079197026, -1.921046610465843e-14], [0.5701973342624466, 0.0, -0.001000000000000223], [-0.38013155617496436, 0.425, -0.001000000000000334], [2.0, 1.8438920547084208, 0.0], [1.575, 0.8707552709005121, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 24)], Rible.FunctionOperator{Main.var"#20#21", Main.var"#22#23", Vector{Float64}, Matrix{Float64}}(Main.var"#20#21"(), Main.var"#22#23"(), [0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996  …  0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; … ; 0.0 0.0 … 1.0 0.0; 0.0 0.0 … 0.0 1.0]), (values = [0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996  …  0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996],))], Coalition(1, 1, 1, 72, 1, [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  63, 64, 65, 66, 67, 68, 69, 70, 71, 72]], [[1]], 24, [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  15, 16, 17, 18, 19, 20, 21, 22, 23, 24]]), (c = [0.38013155617496425, 0.42499999999999993, 1.5195262246998569, -0.44721359549995787, 4.4408920985006264e-17, -0.8944271909999157, -0.3801315561749642, -0.425, -0.001000000000000112, 0.4472135954999578  …  0.0, 0.0, -1.2164209797598855, 0.0, 2.0, -0.22402361088338507, 0.0, 0.0, 1.2164209797598855, 0.0], e = [14.563220780874822], u = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])), CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}[CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}(0.0, [0.38013155617496425, 0.42499999999999993, 1.5195262246998569, -0.44721359549995787, 4.4408920985006264e-17, -0.8944271909999157, -0.3801315561749642, -0.425, -0.001000000000000112, 0.4472135954999578  …  0.7592631123499285, -0.8944271909999157, 0.0, 0.44721359549995787, -0.9503288904374106, 0.0, 0.7592631123499284, 0.8944271909999157, 0.0, -0.44721359549995787], [1.575, 1.1292447290994878, 0.0, -1.509903313490213e-17, -0.1520526224699857, 0.0, 2.425, 0.8707552709005122, 0.0, 0.0  …  0.0, 0.0, -1.2164209797598855, 0.0, 2.0, -0.22402361088338507, 0.0, 0.0, 1.2164209797598855, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0800249583553523e-12, -2.984279490192421e-13, 1.2505552149377763e-12, 335.453071027295, -6.039613253960853e-13, 670.906142054587, -2.2737367544323206e-13, 3.410605131648481e-13, -1.9895196601282805e-12, -335.4530710272935  …  5.684341886080801e-13, 670.9061420545863, -2.4158453015843368e-14, -335.4530710272918, -2.2737367544323206e-12, 6.963318810448982e-13, 3.126388037344441e-13, -670.9061420545884, 6.039613253960853e-13, 335.4530710272934], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float64[], [7.875, 5.0, 0.0, 6.693750000000001, 4.066903300442394, 0.0, 12.125, 5.0, 0.0, 10.306250000000002  …  0.0, 8.5, 3.5930059604109363, 0.0, 10.0, 4.049671109562588, 0.0, 8.500000000000002, 4.906994039589064, 0.0], [2.1385526102475876e-33, 1.7000000000000004, 0.8500000000000002, 3.929684991464909e-33, 1.7000000000000004, 0.8500000000000002, 0.0, 1.7, 0.85, 0.0  …  0.996, 4000.0, 0.0, 0.996, 4000.0, 0.0, 0.996, 4000.0, 0.0, 0.996])], Vector{Rible.Contact{Float64}}[[Rible.Contact{Float64}(1, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(2, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(3, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(4, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(5, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(6, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(7, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(8, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(9, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(10, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(11, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(12, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(13, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(14, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(15, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(16, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(17, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(18, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]))]], @NamedTuple{na::Int64, bodyid2act_idx::Vector{Vector{Int64}}, persistent_idx::Vector{Int64}, activated_bits::BitVector, H::LinearAlgebra.Diagonal{Float64, Vector{Float64}}, activated_restitution_coefficients::Vector{Float64}, D::Matrix{Float64}, Dper::Matrix{Float64}, Dimp::Matrix{Float64}, ∂Dq̇∂q::Matrix{Float64}, ∂DᵀΛ∂q::Matrix{Float64}, ŕ::Vector{Float64}, L::Matrix{Float64}, Lv::Matrix{Float64}, Λ::Vector{Float64}, Γ::Vector{Float64}}[(na = 0, bodyid2act_idx = [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]], persistent_idx = [], activated_bits = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], H = Diagonal(Float64[]), activated_restitution_coefficients = [], D = Matrix{Float64}(undef, 0, 36), Dper = Matrix{Float64}(undef, 0, 36), Dimp = Matrix{Float64}(undef, 0, 36), ∂Dq̇∂q = Matrix{Float64}(undef, 0, 36), ∂DᵀΛ∂q = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], ŕ = [], L = Matrix{Float64}(undef, 0, 0), Lv = Matrix{Float64}(undef, 0, 0), Λ = [], Γ = [])], [(c = [0.38013155617496425, 0.42499999999999993, 1.5195262246998569, -0.44721359549995787, 4.4408920985006264e-17, -0.8944271909999157, -0.3801315561749642, -0.425, -0.001000000000000112, 0.4472135954999578  …  0.0, 0.0, -1.2164209797598855, 0.0, 2.0, -0.22402361088338507, 0.0, 0.0, 1.2164209797598855, 0.0], e = [14.563220780874822], u = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])])

Define the Simulation Problem

DynamicsProblem bundles the robot model, physical environment, and contact model into a complete simulation problem.

Define the ground collision surface — a half-space with normal pointing in the positive z direction:

julia
ground_plane = RB.StaticContactSurfaces([
    RB.HalfSpace([0.0, 0.0, 1.0], zeros(3))
]);

Choose a contact model — Newton restitution + Coulomb friction:

julia
contact_model = RB.RestitutionFrictionCombined(
    RB.NewtonRestitution(),
    RB.CoulombFriction(),
);

Assemble the DynamicsProblem:

julia
prob = RB.DynamicsProblem(bot; env=ground_plane, contact_model=contact_model)
DynamicsProblem{Robot{RibleTensegrity.TensegrityStructure{TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}, Connectivity{Vector{Vector{Int64}}}, Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}, @NamedTuple{activated_bits::BitVector, persistent_bits::BitVector, friction_coefficients::Vector{Float64}, restitution_coefficients::Vector{Float64}, gaps::Vector{Float64}}, Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}}, ControlHub{Vector{CaptumGauge{RibleTensegrity.TensegrityStructure{TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}, Connectivity{Vector{Vector{Int64}}}, Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}, @NamedTuple{activated_bits::BitVector, persistent_bits::BitVector, friction_coefficients::Vector{Float64}, restitution_coefficients::Vector{Float64}, gaps::Vector{Float64}}, Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}}, Rible.FullStateCaptum}}, Vector{ErrorGauge{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, PositionCaptum, Vector{Float64}}}, Vector{Rible.RegisterActuator{Vector{@NamedTuple{cable::Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}, val_id::Int64}}, Rible.FunctionOperator{Main.var"#20#21", Main.var"#22#23", Vector{Float64}, Matrix{Float64}}, @NamedTuple{values::Vector{Float64}}}}, Coalition, @NamedTuple{c::Vector{Float64}, e::Vector{Float64}, u::Vector{Float64}}}, StructArrays.StructVector{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, @NamedTuple{t::Vector{Float64}, q::Vector{Vector{Float64}}, q̇::Vector{Vector{Float64}}, q̈::Vector{Vector{Float64}}, F::Vector{Vector{Float64}}, λ::Vector{Vector{Float64}}, s::Vector{Vector{Float64}}, p::Vector{Vector{Float64}}, c::Vector{Vector{Float64}}}, Int64}, Vector{Vector{Rible.Contact{Float64}}}, Vector{@NamedTuple{na::Int64, bodyid2act_idx::Vector{Vector{Int64}}, persistent_idx::Vector{Int64}, activated_bits::BitVector, H::LinearAlgebra.Diagonal{Float64, Vector{Float64}}, activated_restitution_coefficients::Vector{Float64}, D::Matrix{Float64}, Dper::Matrix{Float64}, Dimp::Matrix{Float64}, ∂Dq̇∂q::Matrix{Float64}, ∂DᵀΛ∂q::Matrix{Float64}, ŕ::Vector{Float64}, L::Matrix{Float64}, Lv::Matrix{Float64}, Λ::Vector{Float64}, Γ::Vector{Float64}}}, StructArrays.StructVector{@NamedTuple{c::Vector{Float64}, e::Vector{Float64}, u::Vector{Float64}}, @NamedTuple{c::Vector{Vector{Float64}}, e::Vector{Vector{Float64}}, u::Vector{Vector{Float64}}}, Int64}}, Rible.NoPolicy, Rible.StaticEnvironment{Vector{HalfSpace{Float64, 3}}, Rible.Gravity{Float64}}, Objective{Vector{Int64}, Rible.var"#default_objective##0#default_objective##1"}, RestitutionFrictionCombined{NewtonRestitution, CoulombFriction}, Rible.Naive, @NamedTuple{}}(Robot{RibleTensegrity.TensegrityStructure{TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}, Connectivity{Vector{Vector{Int64}}}, Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}, @NamedTuple{activated_bits::BitVector, persistent_bits::BitVector, friction_coefficients::Vector{Float64}, restitution_coefficients::Vector{Float64}, gaps::Vector{Float64}}, Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}}, ControlHub{Vector{CaptumGauge{RibleTensegrity.TensegrityStructure{TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}, Connectivity{Vector{Vector{Int64}}}, Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}, @NamedTuple{activated_bits::BitVector, persistent_bits::BitVector, friction_coefficients::Vector{Float64}, restitution_coefficients::Vector{Float64}, gaps::Vector{Float64}}, Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}}, Rible.FullStateCaptum}}, Vector{ErrorGauge{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, PositionCaptum, Vector{Float64}}}, Vector{Rible.RegisterActuator{Vector{@NamedTuple{cable::Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}, val_id::Int64}}, Rible.FunctionOperator{Main.var"#20#21", Main.var"#22#23", Vector{Float64}, Matrix{Float64}}, @NamedTuple{values::Vector{Float64}}}}, Coalition, @NamedTuple{c::Vector{Float64}, e::Vector{Float64}, u::Vector{Float64}}}, StructArrays.StructVector{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, @NamedTuple{t::Vector{Float64}, q::Vector{Vector{Float64}}, q̇::Vector{Vector{Float64}}, q̈::Vector{Vector{Float64}}, F::Vector{Vector{Float64}}, λ::Vector{Vector{Float64}}, s::Vector{Vector{Float64}}, p::Vector{Vector{Float64}}, c::Vector{Vector{Float64}}}, Int64}, Vector{Vector{Rible.Contact{Float64}}}, Vector{@NamedTuple{na::Int64, bodyid2act_idx::Vector{Vector{Int64}}, persistent_idx::Vector{Int64}, activated_bits::BitVector, H::LinearAlgebra.Diagonal{Float64, Vector{Float64}}, activated_restitution_coefficients::Vector{Float64}, D::Matrix{Float64}, Dper::Matrix{Float64}, Dimp::Matrix{Float64}, ∂Dq̇∂q::Matrix{Float64}, ∂DᵀΛ∂q::Matrix{Float64}, ŕ::Vector{Float64}, L::Matrix{Float64}, Lv::Matrix{Float64}, Λ::Vector{Float64}, Γ::Vector{Float64}}}, StructArrays.StructVector{@NamedTuple{c::Vector{Float64}, e::Vector{Float64}, u::Vector{Float64}}, @NamedTuple{c::Vector{Vector{Float64}}, e::Vector{Vector{Float64}}, u::Vector{Vector{Float64}}}, Int64}}(RibleTensegrity.TensegrityStructure{TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}, Connectivity{Vector{Vector{Int64}}}, Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}, @NamedTuple{activated_bits::BitVector, persistent_bits::BitVector, friction_coefficients::Vector{Float64}, restitution_coefficients::Vector{Float64}, gaps::Vector{Float64}}, Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}}(3, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}((RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}[RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...))],), ([1, 2, 3, 4, 5, 6],)), TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}((Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}[Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(1, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.1024241182534661, 180.1325627314032, [0.0, 0.408248290463863, -0.9128709291752768], [0.0, 73.53881079196992, -164.43777991533986], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [0.38013155617496425, 0.85, 0.5691973342624462], [1.575, 1.1292447290994878, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(2, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.5183281135857223, 180.1325627314032, [0.7302967433402215, 0.40824829046386296, 0.5477225575051662], [131.5502239322719, 73.53881079196991, 98.66266794920395], [-0.38013155617496436, 0.425, -0.001000000000000334], [0.38013155617496425, 0.85, 0.5691973342624462], [1.575, 0.8707552709005121, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(3, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.5183281135857223, 180.13256273140232, [-0.7302967433402215, 0.4082482904638631, -0.5477225575051662], [-131.55022393227128, 73.53881079196957, -98.66266794920347], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [-0.38013155617496425, 0.85, 0.9493288904374105], [1.575, 1.1292447290994878, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(4, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.10242411825346599, 180.1325627314032, [1.066462710204328e-16, 0.40824829046386296, 0.912870929175277], [1.9210466104658336e-14, 73.53881079196991, 164.43777991533992], [-0.38013155617496436, 0.425, -0.001000000000000334], [-0.38013155617496425, 0.85, 0.9493288904374105], [1.575, 0.8707552709005121, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(5, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.10242411825346615, 180.13256273140232, [-5.332313551021641e-17, -0.4082482904638631, 0.912870929175277], [-9.605233052329124e-15, -73.53881079196957, 164.43777991533912], [-0.3801315561749642, -0.425, -0.001000000000000112], [-0.38013155617496425, -0.85, 0.9493288904374105], [2.425, 0.8707552709005122, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(6, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.5183281135857221, 180.1325627314032, [-0.7302967433402215, -0.40824829046386296, -0.5477225575051662], [-131.5502239322719, -73.53881079196991, -98.66266794920395], [0.3801315561749643, -0.425, 1.519526224699857], [-0.38013155617496425, -0.85, 0.9493288904374105], [2.425, 1.1292447290994878, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(7, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.5183281135857221, 180.13256273140232, [0.7302967433402214, -0.4082482904638631, 0.5477225575051662], [131.55022393227125, -73.53881079196957, 98.66266794920347], [-0.3801315561749642, -0.425, -0.001000000000000112], [0.38013155617496425, -0.85, 0.5691973342624462], [2.425, 0.8707552709005122, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(8, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.10242411825346606, 180.1325627314032, [-5.33231355102164e-17, -0.40824829046386296, -0.912870929175277], [-9.605233052329168e-15, -73.53881079196991, -164.43777991533992], [0.3801315561749643, -0.425, 1.519526224699857], [0.38013155617496425, -0.85, 0.5691973342624462], [2.425, 1.1292447290994878, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(9, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.6890349773414988, 180.13256273140232, [0.5477225575051663, -0.8164965809277261, 0.18257418583505552], [98.66266794920348, -147.07762158393913, 32.88755598306784], [0.38013155617496425, 0.85, 0.5691973342624462], [0.9503288904374106, 0.0, 0.7592631123499285], [2.0, 1.3801315561749643, 0.0], [2.0, 2.2240236108833846, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(10, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.6890349773414988, 180.13256273140232, [0.5477225575051663, 0.8164965809277261, 0.18257418583505552], [98.66266794920348, 147.07762158393913, 32.88755598306784], [0.38013155617496425, -0.85, 0.5691973342624462], [0.9503288904374106, 0.0, 0.7592631123499285], [2.0, 1.3801315561749643, 0.0], [2.0, 2.2240236108833846, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0])))  …  Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(15, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.37865886142190497, 180.13256273140232, [-0.18257418583505547, 0.8164965809277261, 0.5477225575051662], [-32.887555983067834, 147.07762158393913, 98.66266794920347], [-0.38013155617496425, -0.85, 0.9493288904374105], [-0.5701973342624465, 0.0, 1.5195262246998569], [2.0, 0.6198684438250357, 0.0], [2.0, 0.15610794529157923, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(16, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.37865886142190497, 180.13256273140232, [-0.18257418583505547, -0.8164965809277261, 0.5477225575051662], [-32.887555983067834, -147.07762158393913, 98.66266794920347], [-0.38013155617496425, 0.85, 0.9493288904374105], [-0.5701973342624465, 0.0, 1.5195262246998569], [2.0, 0.6198684438250357, 0.0], [2.0, 0.15610794529157923, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(17, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.21415951998451976, 180.13256273140232, [-0.5477225575051663, 0.408248290463863, 0.7302967433402214], [-98.66266794920348, 73.53881079196955, 131.55022393227125], [0.9503288904374106, 0.0, 0.7592631123499285], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [2.0, 2.2240236108833846, 0.0], [1.575, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(18, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.009311283477587695, 180.1325627314032, [0.9128709291752769, 0.4082482904638629, 0.0], [164.4377799153399, 73.5388107919699, 0.0], [-0.5701973342624465, 0.0, 1.5195262246998569], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [2.0, 0.15610794529157923, 0.0], [1.575, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(19, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.21415951998451999, 180.1325627314032, [-0.547722557505166, -0.40824829046386296, 0.7302967433402215], [-98.66266794920391, -73.53881079196991, 131.5502239322719], [0.9503288904374106, 0.0, 0.7592631123499285], [0.3801315561749643, -0.425, 1.519526224699857], [2.0, 2.2240236108833846, 0.0], [2.425, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(20, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.009311283477587973, 180.1325627314032, [0.9128709291752769, -0.40824829046386296, 2.132925420408656e-16], [164.4377799153399, -73.53881079196991, 3.842093220931667e-14], [-0.5701973342624465, 0.0, 1.5195262246998569], [0.3801315561749643, -0.425, 1.519526224699857], [2.0, 0.15610794529157923, 0.0], [2.425, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(21, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.21415951998452012, 180.13256273140232, [0.5477225575051663, -0.4082482904638631, -0.7302967433402215], [98.66266794920348, -73.53881079196957, -131.55022393227128], [-0.9503288904374106, 0.0, 0.7592631123499284], [-0.3801315561749642, -0.425, -0.001000000000000112], [2.0, -0.22402361088338507, 0.0], [2.425, 0.8707552709005122, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(22, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.009311283477587973, 180.1325627314032, [-0.9128709291752769, -0.40824829046386296, 1.066462710204328e-16], [-164.4377799153399, -73.53881079196991, 1.9210466104658336e-14], [0.5701973342624466, 0.0, -0.001000000000000223], [-0.3801315561749642, -0.425, -0.001000000000000112], [2.0, 1.8438920547084208, 0.0], [2.425, 0.8707552709005122, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(23, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.21415951998452007, 180.1325627314032, [0.5477225575051659, 0.40824829046386296, -0.7302967433402215], [98.66266794920388, 73.53881079196991, -131.5502239322719], [-0.9503288904374106, 0.0, 0.7592631123499284], [-0.38013155617496436, 0.425, -0.001000000000000334], [2.0, -0.22402361088338507, 0.0], [1.575, 0.8707552709005121, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(24, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.041033140682851, -0.009311283477587695, 180.1325627314041, [-0.9128709291752769, 0.40824829046386285, -1.0664627102043277e-16], [-164.4377799153407, 73.53881079197026, -1.921046610465843e-14], [0.5701973342624466, 0.0, -0.001000000000000223], [-0.38013155617496436, 0.425, -0.001000000000000334], [2.0, 1.8438920547084208, 0.0], [1.575, 0.8707552709005121, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0])))],), ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  15, 16, 17, 18, 19, 20, 21, 22, 23, 24],)), Connectivity{Vector{Vector{Int64}}}(6, 24, 24, 24, 36, 6, 0, 6, 30, 30, 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  27, 28, 29, 30, 31, 32, 33, 34, 35, 36], [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18], [19, 20, 21, 22, 23, 24], [25, 26, 27, 28, 29, 30], [31, 32, 33, 34, 35, 36]], [[1], [2], [3], [4], [5], [6]], [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25], [26, 27, 28, 29, 30]], [Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[]  …  Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[]], [Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[]  …  Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[]], [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]], Signifier{Int64}[Signifier{Int64}(1, 1), Signifier{Int64}(1, 2), Signifier{Int64}(1, 3), Signifier{Int64}(2, 1), Signifier{Int64}(2, 2), Signifier{Int64}(2, 3), Signifier{Int64}(3, 1), Signifier{Int64}(3, 2), Signifier{Int64}(3, 3), Signifier{Int64}(4, 1), Signifier{Int64}(4, 2), Signifier{Int64}(4, 3), Signifier{Int64}(5, 1), Signifier{Int64}(5, 2), Signifier{Int64}(5, 3), Signifier{Int64}(6, 1), Signifier{Int64}(6, 2), Signifier{Int64}(6, 3)], [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18]], [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]], 19, 18, 18, 72, 90, [[19, 20, 21], [22, 23, 24], [25, 26, 27], [28, 29, 30], [31, 32, 33], [34, 35, 36], [37, 38, 39], [40, 41, 42], [43, 44, 45], [46, 47, 48]  …  [61, 62, 63], [64, 65, 66], [67, 68, 69], [70, 71, 72], [73, 74, 75], [76, 77, 78], [79, 80, 81], [82, 83, 84], [85, 86, 87], [88, 89, 90]], [[1, 2, 3, 4, 5, 6, 13, 14, 15, 16, 17, 18], [1, 2, 3, 4, 5, 6, 13, 14, 15, 16, 17, 18], [1, 2, 3, 4, 5, 6, 19, 20, 21, 22, 23, 24], [1, 2, 3, 4, 5, 6, 19, 20, 21, 22, 23, 24], [7, 8, 9, 10, 11, 12, 19, 20, 21, 22, 23, 24], [7, 8, 9, 10, 11, 12, 19, 20, 21, 22, 23, 24], [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], [13, 14, 15, 16, 17, 18, 25, 26, 27, 28, 29, 30], [13, 14, 15, 16, 17, 18, 25, 26, 27, 28, 29, 30]  …  [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], [25, 26, 27, 28, 29, 30, 1, 2, 3, 4, 5, 6], [25, 26, 27, 28, 29, 30, 1, 2, 3, 4, 5, 6], [25, 26, 27, 28, 29, 30, 7, 8, 9, 10, 11, 12], [25, 26, 27, 28, 29, 30, 7, 8, 9, 10, 11, 12], [31, 32, 33, 34, 35, 36, 7, 8, 9, 10, 11, 12], [31, 32, 33, 34, 35, 36, 7, 8, 9, 10, 11, 12], [31, 32, 33, 34, 35, 36, 1, 2, 3, 4, 5, 6], [31, 32, 33, 34, 35, 36, 1, 2, 3, 4, 5, 6]]), Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}(CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}(0.0, [0.38013155617496425, 0.42499999999999993, 1.5195262246998569, -0.44721359549995787, 4.4408920985006264e-17, -0.8944271909999157, -0.3801315561749642, -0.425, -0.001000000000000112, 0.4472135954999578  …  0.7592631123499285, -0.8944271909999157, 0.0, 0.44721359549995787, -0.9503288904374106, 0.0, 0.7592631123499284, 0.8944271909999157, 0.0, -0.44721359549995787], [1.575, 1.1292447290994878, 0.0, -1.509903313490213e-17, -0.1520526224699857, 0.0, 2.425, 0.8707552709005122, 0.0, 0.0  …  0.0, 0.0, -1.2164209797598855, 0.0, 2.0, -0.22402361088338507, 0.0, 0.0, 1.2164209797598855, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0800249583553523e-12, -2.984279490192421e-13, 1.2505552149377763e-12, 335.453071027295, -6.039613253960853e-13, 670.906142054587, -2.2737367544323206e-13, 3.410605131648481e-13, -1.9895196601282805e-12, -335.4530710272935  …  5.684341886080801e-13, 670.9061420545863, -2.4158453015843368e-14, -335.4530710272918, -2.2737367544323206e-12, 6.963318810448982e-13, 3.126388037344441e-13, -670.9061420545884, 6.039613253960853e-13, 335.4530710272934], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float64[], [7.875, 5.0, 0.0, 6.693750000000001, 4.066903300442394, 0.0, 12.125, 5.0, 0.0, 10.306250000000002  …  0.0, 8.5, 3.5930059604109363, 0.0, 10.0, 4.049671109562588, 0.0, 8.500000000000002, 4.906994039589064, 0.0], [2.1385526102475876e-33, 1.7000000000000004, 0.8500000000000002, 3.929684991464909e-33, 1.7000000000000004, 0.8500000000000002, 0.0, 1.7, 0.85, 0.0  …  0.996, 4000.0, 0.0, 0.996, 4000.0, 0.0, 0.996, 4000.0, 0.0, 0.996]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}[CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [0.38013155617496425, 0.42499999999999993, 1.5195262246998569, -0.44721359549995787, 4.4408920985006264e-17, -0.8944271909999157], [1.575, 1.1292447290994878, 0.0, -1.509903313490213e-17, -0.1520526224699857, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0800249583553523e-12, -2.984279490192421e-13, 1.2505552149377763e-12, 335.453071027295, -6.039613253960853e-13, 670.906142054587], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [2.1385526102475876e-33, 1.7000000000000004, 0.8500000000000002]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [-0.3801315561749642, -0.425, -0.001000000000000112, 0.4472135954999578, 0.0, 0.8944271909999157], [2.425, 0.8707552709005122, 0.0, 0.0, 0.15205262246998566, -0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-2.2737367544323206e-13, 3.410605131648481e-13, -1.9895196601282805e-12, -335.4530710272935, 1.3402603797652236e-45, -670.9061420545871], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [3.929684991464909e-33, 1.7000000000000004, 0.8500000000000002]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [0.38013155617496425, 0.85, 0.5691973342624462, 0.0, -1.0, 0.0], [2.0, 1.3801315561749643, 0.0, -0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-1.8474111129762605e-13, -4.547473508864641e-13, 1.9895196601282805e-13, 3.986144747614162e-13, 750.0958700780913, 6.281197784119285e-13], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.7, 0.85]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [-0.38013155617496425, -0.85, 0.9493288904374105, 0.0, 1.0, 0.0], [2.0, 0.6198684438250357, 0.0, 0.0, -0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [5.258016244624741e-13, 0.0, -3.410605131648481e-13, -1.0871303857129532e-13, -750.0958700780901, -1.377031821903074e-12], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.7, 0.85]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [0.9503288904374105, 0.0, 0.7592631123499285, -0.8944271909999157, 0.0, 0.44721359549995787], [2.0, 2.2240236108833846, 0.0, 0.0, -1.2164209797598855, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0800249583553523e-12, -3.694822225952521e-13, 5.684341886080801e-13, 670.9061420545863, -2.4158453015843368e-14, -335.4530710272918], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-1.1102230246251568e-16, 1.7000000000000002, 0.8500000000000001]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [-0.9503288904374106, 0.0, 0.7592631123499284, 0.8944271909999157, 0.0, -0.44721359549995787], [2.0, -0.22402361088338507, 0.0, 0.0, 1.2164209797598855, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-2.2737367544323206e-12, 6.963318810448982e-13, 3.126388037344441e-13, -670.9061420545884, 6.039613253960853e-13, 335.4530710272934], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [2.6359719861470482e-34, 1.7000000000000004, 0.8500000000000002])]), (activated_bits = Bool[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], persistent_bits = Bool[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], friction_coefficients = [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05], restitution_coefficients = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], gaps = [Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf]), Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}(InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5  …  32, 35, 33, 36, 31, 34, 32, 35, 33, 36], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5  …  32, 32, 33, 33, 34, 34, 35, 35, 36, 36], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668  …  5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 36, 36), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5  …  32, 35, 33, 36, 31, 34, 32, 35, 33, 36], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5  …  32, 32, 33, 33, 34, 34, 35, 35, 36, 36], [0.8000000000000005, -0.7058823529411767, 0.8000000000000005, -0.7058823529411767, 0.8000000000000005, -0.7058823529411767, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194  …  0.8000000000000005, -0.7058823529411767, 0.8000000000000005, -0.7058823529411767, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 36, 36), sparse(Int64[], Int64[], Float64[], 36, 36), sparse(Int64[], Int64[], Float64[], 36, 36), sparsevec(Int64[], Float64[], 36), sparsevec(Int64[], Float64[], 36), true))), ControlHub{Vector{CaptumGauge{RibleTensegrity.TensegrityStructure{TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}, Connectivity{Vector{Vector{Int64}}}, Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}, @NamedTuple{activated_bits::BitVector, persistent_bits::BitVector, friction_coefficients::Vector{Float64}, restitution_coefficients::Vector{Float64}, gaps::Vector{Float64}}, Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}}, Rible.FullStateCaptum}}, Vector{ErrorGauge{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, PositionCaptum, Vector{Float64}}}, Vector{Rible.RegisterActuator{Vector{@NamedTuple{cable::Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}, val_id::Int64}}, Rible.FunctionOperator{Main.var"#20#21", Main.var"#22#23", Vector{Float64}, Matrix{Float64}}, @NamedTuple{values::Vector{Float64}}}}, Coalition, @NamedTuple{c::Vector{Float64}, e::Vector{Float64}, u::Vector{Float64}}}(CaptumGauge{RibleTensegrity.TensegrityStructure{TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}, Connectivity{Vector{Vector{Int64}}}, Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}, @NamedTuple{activated_bits::BitVector, persistent_bits::BitVector, friction_coefficients::Vector{Float64}, restitution_coefficients::Vector{Float64}, gaps::Vector{Float64}}, Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}}, Rible.FullStateCaptum}[CaptumGauge{RibleTensegrity.TensegrityStructure{TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}, Connectivity{Vector{Vector{Int64}}}, Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}, @NamedTuple{activated_bits::BitVector, persistent_bits::BitVector, friction_coefficients::Vector{Float64}, restitution_coefficients::Vector{Float64}, gaps::Vector{Float64}}, Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}}, Rible.FullStateCaptum}(1, RibleTensegrity.TensegrityStructure{TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}, Connectivity{Vector{Vector{Int64}}}, Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}, @NamedTuple{activated_bits::BitVector, persistent_bits::BitVector, friction_coefficients::Vector{Float64}, restitution_coefficients::Vector{Float64}, gaps::Vector{Float64}}, Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}}(3, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}, 1}((RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}[RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...))],), ([1, 2, 3, 4, 5, 6],)), TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}}}, 1}((Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}[Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(1, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.1024241182534661, 180.1325627314032, [0.0, 0.408248290463863, -0.9128709291752768], [0.0, 73.53881079196992, -164.43777991533986], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [0.38013155617496425, 0.85, 0.5691973342624462], [1.575, 1.1292447290994878, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(2, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.5183281135857223, 180.1325627314032, [0.7302967433402215, 0.40824829046386296, 0.5477225575051662], [131.5502239322719, 73.53881079196991, 98.66266794920395], [-0.38013155617496436, 0.425, -0.001000000000000334], [0.38013155617496425, 0.85, 0.5691973342624462], [1.575, 0.8707552709005121, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(3, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.5183281135857223, 180.13256273140232, [-0.7302967433402215, 0.4082482904638631, -0.5477225575051662], [-131.55022393227128, 73.53881079196957, -98.66266794920347], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [-0.38013155617496425, 0.85, 0.9493288904374105], [1.575, 1.1292447290994878, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(4, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.10242411825346599, 180.1325627314032, [1.066462710204328e-16, 0.40824829046386296, 0.912870929175277], [1.9210466104658336e-14, 73.53881079196991, 164.43777991533992], [-0.38013155617496436, 0.425, -0.001000000000000334], [-0.38013155617496425, 0.85, 0.9493288904374105], [1.575, 0.8707552709005121, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(5, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.10242411825346615, 180.13256273140232, [-5.332313551021641e-17, -0.4082482904638631, 0.912870929175277], [-9.605233052329124e-15, -73.53881079196957, 164.43777991533912], [-0.3801315561749642, -0.425, -0.001000000000000112], [-0.38013155617496425, -0.85, 0.9493288904374105], [2.425, 0.8707552709005122, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(6, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.5183281135857221, 180.1325627314032, [-0.7302967433402215, -0.40824829046386296, -0.5477225575051662], [-131.5502239322719, -73.53881079196991, -98.66266794920395], [0.3801315561749643, -0.425, 1.519526224699857], [-0.38013155617496425, -0.85, 0.9493288904374105], [2.425, 1.1292447290994878, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(7, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.5183281135857221, 180.13256273140232, [0.7302967433402214, -0.4082482904638631, 0.5477225575051662], [131.55022393227125, -73.53881079196957, 98.66266794920347], [-0.3801315561749642, -0.425, -0.001000000000000112], [0.38013155617496425, -0.85, 0.5691973342624462], [2.425, 0.8707552709005122, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(8, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.10242411825346606, 180.1325627314032, [-5.33231355102164e-17, -0.40824829046386296, -0.912870929175277], [-9.605233052329168e-15, -73.53881079196991, -164.43777991533992], [0.3801315561749643, -0.425, 1.519526224699857], [0.38013155617496425, -0.85, 0.5691973342624462], [2.425, 1.1292447290994878, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(9, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.6890349773414988, 180.13256273140232, [0.5477225575051663, -0.8164965809277261, 0.18257418583505552], [98.66266794920348, -147.07762158393913, 32.88755598306784], [0.38013155617496425, 0.85, 0.5691973342624462], [0.9503288904374106, 0.0, 0.7592631123499285], [2.0, 1.3801315561749643, 0.0], [2.0, 2.2240236108833846, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(10, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.6890349773414988, 180.13256273140232, [0.5477225575051663, 0.8164965809277261, 0.18257418583505552], [98.66266794920348, 147.07762158393913, 32.88755598306784], [0.38013155617496425, -0.85, 0.5691973342624462], [0.9503288904374106, 0.0, 0.7592631123499285], [2.0, 1.3801315561749643, 0.0], [2.0, 2.2240236108833846, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0])))  …  Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(15, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.37865886142190497, 180.13256273140232, [-0.18257418583505547, 0.8164965809277261, 0.5477225575051662], [-32.887555983067834, 147.07762158393913, 98.66266794920347], [-0.38013155617496425, -0.85, 0.9493288904374105], [-0.5701973342624465, 0.0, 1.5195262246998569], [2.0, 0.6198684438250357, 0.0], [2.0, 0.15610794529157923, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(16, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.37865886142190497, 180.13256273140232, [-0.18257418583505547, -0.8164965809277261, 0.5477225575051662], [-32.887555983067834, -147.07762158393913, 98.66266794920347], [-0.38013155617496425, 0.85, 0.9493288904374105], [-0.5701973342624465, 0.0, 1.5195262246998569], [2.0, 0.6198684438250357, 0.0], [2.0, 0.15610794529157923, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(17, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.21415951998451976, 180.13256273140232, [-0.5477225575051663, 0.408248290463863, 0.7302967433402214], [-98.66266794920348, 73.53881079196955, 131.55022393227125], [0.9503288904374106, 0.0, 0.7592631123499285], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [2.0, 2.2240236108833846, 0.0], [1.575, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(18, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.009311283477587695, 180.1325627314032, [0.9128709291752769, 0.4082482904638629, 0.0], [164.4377799153399, 73.5388107919699, 0.0], [-0.5701973342624465, 0.0, 1.5195262246998569], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [2.0, 0.15610794529157923, 0.0], [1.575, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(19, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.21415951998451999, 180.1325627314032, [-0.547722557505166, -0.40824829046386296, 0.7302967433402215], [-98.66266794920391, -73.53881079196991, 131.5502239322719], [0.9503288904374106, 0.0, 0.7592631123499285], [0.3801315561749643, -0.425, 1.519526224699857], [2.0, 2.2240236108833846, 0.0], [2.425, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(20, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.009311283477587973, 180.1325627314032, [0.9128709291752769, -0.40824829046386296, 2.132925420408656e-16], [164.4377799153399, -73.53881079196991, 3.842093220931667e-14], [-0.5701973342624465, 0.0, 1.5195262246998569], [0.3801315561749643, -0.425, 1.519526224699857], [2.0, 0.15610794529157923, 0.0], [2.425, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(21, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.21415951998452012, 180.13256273140232, [0.5477225575051663, -0.4082482904638631, -0.7302967433402215], [98.66266794920348, -73.53881079196957, -131.55022393227128], [-0.9503288904374106, 0.0, 0.7592631123499284], [-0.3801315561749642, -0.425, -0.001000000000000112], [2.0, -0.22402361088338507, 0.0], [2.425, 0.8707552709005122, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(22, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.009311283477587973, 180.1325627314032, [-0.9128709291752769, -0.40824829046386296, 1.066462710204328e-16], [-164.4377799153399, -73.53881079196991, 1.9210466104658336e-14], [0.5701973342624466, 0.0, -0.001000000000000223], [-0.3801315561749642, -0.425, -0.001000000000000112], [2.0, 1.8438920547084208, 0.0], [2.425, 0.8707552709005122, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(23, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.21415951998452007, 180.1325627314032, [0.5477225575051659, 0.40824829046386296, -0.7302967433402215], [98.66266794920388, 73.53881079196991, -131.5502239322719], [-0.9503288904374106, 0.0, 0.7592631123499284], [-0.38013155617496436, 0.425, -0.001000000000000334], [2.0, -0.22402361088338507, 0.0], [1.575, 0.8707552709005121, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(24, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.041033140682851, -0.009311283477587695, 180.1325627314041, [-0.9128709291752769, 0.40824829046386285, -1.0664627102043277e-16], [-164.4377799153407, 73.53881079197026, -1.921046610465843e-14], [0.5701973342624466, 0.0, -0.001000000000000223], [-0.38013155617496436, 0.425, -0.001000000000000334], [2.0, 1.8438920547084208, 0.0], [1.575, 0.8707552709005121, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0])))],), ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  15, 16, 17, 18, 19, 20, 21, 22, 23, 24],)), Connectivity{Vector{Vector{Int64}}}(6, 24, 24, 24, 36, 6, 0, 6, 30, 30, 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  27, 28, 29, 30, 31, 32, 33, 34, 35, 36], [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18], [19, 20, 21, 22, 23, 24], [25, 26, 27, 28, 29, 30], [31, 32, 33, 34, 35, 36]], [[1], [2], [3], [4], [5], [6]], [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25], [26, 27, 28, 29, 30]], [Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[]  …  Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[]], [Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[]  …  Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[], Int64[]], [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]], Signifier{Int64}[Signifier{Int64}(1, 1), Signifier{Int64}(1, 2), Signifier{Int64}(1, 3), Signifier{Int64}(2, 1), Signifier{Int64}(2, 2), Signifier{Int64}(2, 3), Signifier{Int64}(3, 1), Signifier{Int64}(3, 2), Signifier{Int64}(3, 3), Signifier{Int64}(4, 1), Signifier{Int64}(4, 2), Signifier{Int64}(4, 3), Signifier{Int64}(5, 1), Signifier{Int64}(5, 2), Signifier{Int64}(5, 3), Signifier{Int64}(6, 1), Signifier{Int64}(6, 2), Signifier{Int64}(6, 3)], [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18]], [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]], 19, 18, 18, 72, 90, [[19, 20, 21], [22, 23, 24], [25, 26, 27], [28, 29, 30], [31, 32, 33], [34, 35, 36], [37, 38, 39], [40, 41, 42], [43, 44, 45], [46, 47, 48]  …  [61, 62, 63], [64, 65, 66], [67, 68, 69], [70, 71, 72], [73, 74, 75], [76, 77, 78], [79, 80, 81], [82, 83, 84], [85, 86, 87], [88, 89, 90]], [[1, 2, 3, 4, 5, 6, 13, 14, 15, 16, 17, 18], [1, 2, 3, 4, 5, 6, 13, 14, 15, 16, 17, 18], [1, 2, 3, 4, 5, 6, 19, 20, 21, 22, 23, 24], [1, 2, 3, 4, 5, 6, 19, 20, 21, 22, 23, 24], [7, 8, 9, 10, 11, 12, 19, 20, 21, 22, 23, 24], [7, 8, 9, 10, 11, 12, 19, 20, 21, 22, 23, 24], [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], [13, 14, 15, 16, 17, 18, 25, 26, 27, 28, 29, 30], [13, 14, 15, 16, 17, 18, 25, 26, 27, 28, 29, 30]  …  [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], [25, 26, 27, 28, 29, 30, 1, 2, 3, 4, 5, 6], [25, 26, 27, 28, 29, 30, 1, 2, 3, 4, 5, 6], [25, 26, 27, 28, 29, 30, 7, 8, 9, 10, 11, 12], [25, 26, 27, 28, 29, 30, 7, 8, 9, 10, 11, 12], [31, 32, 33, 34, 35, 36, 7, 8, 9, 10, 11, 12], [31, 32, 33, 34, 35, 36, 7, 8, 9, 10, 11, 12], [31, 32, 33, 34, 35, 36, 1, 2, 3, 4, 5, 6], [31, 32, 33, 34, 35, 36, 1, 2, 3, 4, 5, 6]]), Rible.StructureState{CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, Vector{CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}}}(CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}(0.0, [0.38013155617496425, 0.42499999999999993, 1.5195262246998569, -0.44721359549995787, 4.4408920985006264e-17, -0.8944271909999157, -0.3801315561749642, -0.425, -0.001000000000000112, 0.4472135954999578  …  0.7592631123499285, -0.8944271909999157, 0.0, 0.44721359549995787, -0.9503288904374106, 0.0, 0.7592631123499284, 0.8944271909999157, 0.0, -0.44721359549995787], [1.575, 1.1292447290994878, 0.0, -1.509903313490213e-17, -0.1520526224699857, 0.0, 2.425, 0.8707552709005122, 0.0, 0.0  …  0.0, 0.0, -1.2164209797598855, 0.0, 2.0, -0.22402361088338507, 0.0, 0.0, 1.2164209797598855, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0800249583553523e-12, -2.984279490192421e-13, 1.2505552149377763e-12, 335.453071027295, -6.039613253960853e-13, 670.906142054587, -2.2737367544323206e-13, 3.410605131648481e-13, -1.9895196601282805e-12, -335.4530710272935  …  5.684341886080801e-13, 670.9061420545863, -2.4158453015843368e-14, -335.4530710272918, -2.2737367544323206e-12, 6.963318810448982e-13, 3.126388037344441e-13, -670.9061420545884, 6.039613253960853e-13, 335.4530710272934], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float64[], [7.875, 5.0, 0.0, 6.693750000000001, 4.066903300442394, 0.0, 12.125, 5.0, 0.0, 10.306250000000002  …  0.0, 8.5, 3.5930059604109363, 0.0, 10.0, 4.049671109562588, 0.0, 8.500000000000002, 4.906994039589064, 0.0], [2.1385526102475876e-33, 1.7000000000000004, 0.8500000000000002, 3.929684991464909e-33, 1.7000000000000004, 0.8500000000000002, 0.0, 1.7, 0.85, 0.0  …  0.996, 4000.0, 0.0, 0.996, 4000.0, 0.0, 0.996, 4000.0, 0.0, 0.996]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}[CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [0.38013155617496425, 0.42499999999999993, 1.5195262246998569, -0.44721359549995787, 4.4408920985006264e-17, -0.8944271909999157], [1.575, 1.1292447290994878, 0.0, -1.509903313490213e-17, -0.1520526224699857, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0800249583553523e-12, -2.984279490192421e-13, 1.2505552149377763e-12, 335.453071027295, -6.039613253960853e-13, 670.906142054587], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [2.1385526102475876e-33, 1.7000000000000004, 0.8500000000000002]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [-0.3801315561749642, -0.425, -0.001000000000000112, 0.4472135954999578, 0.0, 0.8944271909999157], [2.425, 0.8707552709005122, 0.0, 0.0, 0.15205262246998566, -0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-2.2737367544323206e-13, 3.410605131648481e-13, -1.9895196601282805e-12, -335.4530710272935, 1.3402603797652236e-45, -670.9061420545871], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [3.929684991464909e-33, 1.7000000000000004, 0.8500000000000002]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [0.38013155617496425, 0.85, 0.5691973342624462, 0.0, -1.0, 0.0], [2.0, 1.3801315561749643, 0.0, -0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-1.8474111129762605e-13, -4.547473508864641e-13, 1.9895196601282805e-13, 3.986144747614162e-13, 750.0958700780913, 6.281197784119285e-13], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.7, 0.85]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [-0.38013155617496425, -0.85, 0.9493288904374105, 0.0, 1.0, 0.0], [2.0, 0.6198684438250357, 0.0, 0.0, -0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [5.258016244624741e-13, 0.0, -3.410605131648481e-13, -1.0871303857129532e-13, -750.0958700780901, -1.377031821903074e-12], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.7, 0.85]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [0.9503288904374105, 0.0, 0.7592631123499285, -0.8944271909999157, 0.0, 0.44721359549995787], [2.0, 2.2240236108833846, 0.0, 0.0, -1.2164209797598855, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0800249583553523e-12, -3.694822225952521e-13, 5.684341886080801e-13, 670.9061420545863, -2.4158453015843368e-14, -335.4530710272918], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-1.1102230246251568e-16, 1.7000000000000002, 0.8500000000000001]), CoordinatesState{Float64, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}, Vector{Float64}, SubArray{Float64, 1, Vector{Float64}, Tuple{Vector{Int64}}, false}}(0.0, [-0.9503288904374106, 0.0, 0.7592631123499284, 0.8944271909999157, 0.0, -0.44721359549995787], [2.0, -0.22402361088338507, 0.0, 0.0, 1.2164209797598855, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-2.2737367544323206e-12, 6.963318810448982e-13, 3.126388037344441e-13, -670.9061420545884, 6.039613253960853e-13, 335.4530710272934], [0.0], Float64[], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [2.6359719861470482e-34, 1.7000000000000004, 0.8500000000000002])]), (activated_bits = Bool[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], persistent_bits = Bool[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], friction_coefficients = [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05], restitution_coefficients = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], gaps = [Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf]), Rible.StructureCache{InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}}(InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseVector{Float64, Int64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5  …  32, 35, 33, 36, 31, 34, 32, 35, 33, 36], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5  …  32, 32, 33, 33, 34, 34, 35, 35, 36, 36], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668  …  5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 36, 36), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5  …  32, 35, 33, 36, 31, 34, 32, 35, 33, 36], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5  …  32, 32, 33, 33, 34, 34, 35, 35, 36, 36], [0.8000000000000005, -0.7058823529411767, 0.8000000000000005, -0.7058823529411767, 0.8000000000000005, -0.7058823529411767, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194  …  0.8000000000000005, -0.7058823529411767, 0.8000000000000005, -0.7058823529411767, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 36, 36), sparse(Int64[], Int64[], Float64[], 36, 36), sparse(Int64[], Int64[], Float64[], 36, 36), sparsevec(Int64[], Float64[], 36), sparsevec(Int64[], Float64[], 36), true))), Rible.FullStateCaptum())], ErrorGauge{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, PositionCaptum, Vector{Float64}}[ErrorGauge{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, PositionCaptum, Vector{Float64}}(1, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), PositionCaptum(), [5.0, 0.0, 0.0])], Rible.RegisterActuator{Vector{@NamedTuple{cable::Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}, val_id::Int64}}, Rible.FunctionOperator{Main.var"#20#21", Main.var"#22#23", Vector{Float64}, Matrix{Float64}}, @NamedTuple{values::Vector{Float64}}}[Rible.RegisterActuator{Vector{@NamedTuple{cable::Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}, val_id::Int64}}, Rible.FunctionOperator{Main.var"#20#21", Main.var"#22#23", Vector{Float64}, Matrix{Float64}}, @NamedTuple{values::Vector{Float64}}}(1, @NamedTuple{cable::Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}, val_id::Int64}[(cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(1, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.1024241182534661, 180.1325627314032, [0.0, 0.408248290463863, -0.9128709291752768], [0.0, 73.53881079196992, -164.43777991533986], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [0.38013155617496425, 0.85, 0.5691973342624462], [1.575, 1.1292447290994878, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 1), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(2, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.5183281135857223, 180.1325627314032, [0.7302967433402215, 0.40824829046386296, 0.5477225575051662], [131.5502239322719, 73.53881079196991, 98.66266794920395], [-0.38013155617496436, 0.425, -0.001000000000000334], [0.38013155617496425, 0.85, 0.5691973342624462], [1.575, 0.8707552709005121, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 2), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(3, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.5183281135857223, 180.13256273140232, [-0.7302967433402215, 0.4082482904638631, -0.5477225575051662], [-131.55022393227128, 73.53881079196957, -98.66266794920347], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [-0.38013155617496425, 0.85, 0.9493288904374105], [1.575, 1.1292447290994878, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 3), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(4, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.10242411825346599, 180.1325627314032, [1.066462710204328e-16, 0.40824829046386296, 0.912870929175277], [1.9210466104658336e-14, 73.53881079196991, 164.43777991533992], [-0.38013155617496436, 0.425, -0.001000000000000334], [-0.38013155617496425, 0.85, 0.9493288904374105], [1.575, 0.8707552709005121, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 4), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(5, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.10242411825346615, 180.13256273140232, [-5.332313551021641e-17, -0.4082482904638631, 0.912870929175277], [-9.605233052329124e-15, -73.53881079196957, 164.43777991533912], [-0.3801315561749642, -0.425, -0.001000000000000112], [-0.38013155617496425, -0.85, 0.9493288904374105], [2.425, 0.8707552709005122, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 5), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(6, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.5183281135857221, 180.1325627314032, [-0.7302967433402215, -0.40824829046386296, -0.5477225575051662], [-131.5502239322719, -73.53881079196991, -98.66266794920395], [0.3801315561749643, -0.425, 1.519526224699857], [-0.38013155617496425, -0.85, 0.9493288904374105], [2.425, 1.1292447290994878, 0.0], [2.0, 0.6198684438250357, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 6), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(7, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.5183281135857221, 180.13256273140232, [0.7302967433402214, -0.4082482904638631, 0.5477225575051662], [131.55022393227125, -73.53881079196957, 98.66266794920347], [-0.3801315561749642, -0.425, -0.001000000000000112], [0.38013155617496425, -0.85, 0.5691973342624462], [2.425, 0.8707552709005122, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 7), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(8, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.10242411825346606, 180.1325627314032, [-5.33231355102164e-17, -0.40824829046386296, -0.912870929175277], [-9.605233052329168e-15, -73.53881079196991, -164.43777991533992], [0.3801315561749643, -0.425, 1.519526224699857], [0.38013155617496425, -0.85, 0.5691973342624462], [2.425, 1.1292447290994878, 0.0], [2.0, 1.3801315561749643, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 8), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(9, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.6890349773414988, 180.13256273140232, [0.5477225575051663, -0.8164965809277261, 0.18257418583505552], [98.66266794920348, -147.07762158393913, 32.88755598306784], [0.38013155617496425, 0.85, 0.5691973342624462], [0.9503288904374106, 0.0, 0.7592631123499285], [2.0, 1.3801315561749643, 0.0], [2.0, 2.2240236108833846, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 9), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(10, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 3, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([0.0 1.0 0.0; -1.0 0.0 0.0; 0.0 0.0 1.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [-4.192202140984591e-13, -441.23286475181885, -1.7053025658242404e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, -0.85, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [2.3447910280083306e-13, 441.2328647518184, 3.694822225952521e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.0, 0.5691973342624462], Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [-0.0, -0.0, -0.0], [-0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([1.0 -0.0 0.0; 0.0 0.0 -1.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … -2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.6890349773414988, 180.13256273140232, [0.5477225575051663, 0.8164965809277261, 0.18257418583505552], [98.66266794920348, 147.07762158393913, 32.88755598306784], [0.38013155617496425, -0.85, 0.5691973342624462], [0.9503288904374106, 0.0, 0.7592631123499285], [2.0, 1.3801315561749643, 0.0], [2.0, 2.2240236108833846, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 10)  …  (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(15, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.37865886142190497, 180.13256273140232, [-0.18257418583505547, 0.8164965809277261, 0.5477225575051662], [-32.887555983067834, 147.07762158393913, 98.66266794920347], [-0.38013155617496425, -0.85, 0.9493288904374105], [-0.5701973342624465, 0.0, 1.5195262246998569], [2.0, 0.6198684438250357, 0.0], [2.0, 0.15610794529157923, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 15), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(16, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 4, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([0.0 0.0 1.0; 1.0 0.0 0.0; 0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, -0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, -0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [5.897504706808832e-13, 441.2328647518177, 4.689582056016661e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.85, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [-6.394884621840902e-14, -441.2328647518177, -8.100187187665142e-13], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496425, 0.0, 0.9493288904374105], Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, -0.0], [0.0, 0.0, 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 1.0 0.0; -0.0 -0.0 1.0; 1.0 -0.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 0.0], [1.0; 0.0; 0.0;;], [1.0 0.0 0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7 0.0; 0.0 0.0 … 0.0 1.7], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.85 0.0; 0.0 0.0 … 0.0 0.85]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 2.0 0.0]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, 0.37865886142190497, 180.13256273140232, [-0.18257418583505547, -0.8164965809277261, 0.5477225575051662], [-32.887555983067834, -147.07762158393913, 98.66266794920347], [-0.38013155617496425, 0.85, 0.9493288904374105], [-0.5701973342624465, 0.0, 1.5195262246998569], [2.0, 0.6198684438250357, 0.0], [2.0, 0.15610794529157923, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 16), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(17, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.21415951998451976, 180.13256273140232, [-0.5477225575051663, 0.408248290463863, 0.7302967433402214], [-98.66266794920348, 73.53881079196955, 131.55022393227125], [0.9503288904374106, 0.0, 0.7592631123499285], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [2.0, 2.2240236108833846, 0.0], [1.575, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 17), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(18, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.009311283477587695, 180.1325627314032, [0.9128709291752769, 0.4082482904638629, 0.0], [164.4377799153399, 73.5388107919699, 0.0], [-0.5701973342624465, 0.0, 1.5195262246998569], [0.38013155617496425, 0.42499999999999993, 1.5195262246998569], [2.0, 0.15610794529157923, 0.0], [1.575, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 18), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(19, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.21415951998451999, 180.1325627314032, [-0.547722557505166, -0.40824829046386296, 0.7302967433402215], [-98.66266794920391, -73.53881079196991, 131.5502239322719], [0.9503288904374106, 0.0, 0.7592631123499285], [0.3801315561749643, -0.425, 1.519526224699857], [2.0, 2.2240236108833846, 0.0], [2.425, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 19), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(20, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 5, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([-0.894427190999916 0.44721359549995776 0.0; 0.0 0.0 1.0; 0.447213595499958 0.894427190999916 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.6082104898799429, 1.2164209797598857, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.9503288904374106, 0.0, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [-394.6506717968144, -3.552713678800501e-13, 197.32533589840747], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.5701973342624465, 0.0, 1.5195262246998569], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [394.65067179681546, -1.4210854715202004e-14, -197.3253358984069], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.19006577808748204, 0.0, 1.1393946685248928], Rible.Axes{3, Float64, 9}([0.447213595499958 0.0 -0.8944271909999159; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.4472135954999579]), [0.0, 0.0, 0.0], [0.0, 0.0, 1.36], [1.2164209797598857, 0.0, 0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.44721359549995776 0.0 -0.894427190999916; 0.0 1.0 0.0; 0.894427190999916 -0.0 0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.8499999999999999, 4.2029908776837597e-17, 0.0], [0.9999999999999999; 6.734455237049213e-18; 0.0;;], [1.0000000000000002 6.734455237049216e-18 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … -1.1102230246251568e-16 0.0; 0.0 0.0 … 0.0 -1.1102230246251568e-16], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000002 0.0; 0.0 0.0 … 0.0 1.7000000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000001 0.0; 0.0 0.0 … 0.0 0.8500000000000001]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.25, 5.0, 4.25, 5.0, 4.25, 4.25, 4.816666666666666, 4.25, 4.816666666666666, 4.25, 4.816666666666666], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, 0.8000000000000004, -0.7058823529411768, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198, -0.7058823529411768, 0.8304498269896198], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, -0.009311283477587973, 180.1325627314032, [0.9128709291752769, -0.40824829046386296, 2.132925420408656e-16], [164.4377799153399, -73.53881079196991, 3.842093220931667e-14], [-0.5701973342624465, 0.0, 1.5195262246998569], [0.3801315561749643, -0.425, 1.519526224699857], [2.0, 0.15610794529157923, 0.0], [2.425, 1.1292447290994878, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 20), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(21, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828506, -0.21415951998452012, 180.13256273140232, [0.5477225575051663, -0.4082482904638631, -0.7302967433402215], [98.66266794920348, -73.53881079196957, -131.55022393227128], [-0.9503288904374106, 0.0, 0.7592631123499284], [-0.3801315561749642, -0.425, -0.001000000000000112], [2.0, -0.22402361088338507, 0.0], [2.425, 0.8707552709005122, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 21), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(22, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 2, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.447213595499958 0.8944271909999159 0.0; 0.0 0.0 1.0; 0.894427190999916 -0.447213595499958 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.30410524493997143, -0.15205262246998572, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.3801315561749642, -0.425, -0.001000000000000112], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [197.32533589840767, 3.410605131648481e-13, 394.65067179681387], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.3801315561749643, -0.425, 1.519526224699857], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [-197.3253358984079, 0.0, -394.65067179681586], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([5.551115123125783e-17, -0.425, 0.7592631123499285], Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.4472135954999579; -0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [-0.0, 0.0, 0.34], [-0.15205262246998572, 0.0, 0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([0.8944271909999159 -0.0 0.447213595499958; -0.0 1.0 0.0; -0.44721359549995804 -0.0 0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 6.31319255193657e-17, 0.0], [0.9999999999999999; -6.224560646830704e-17; 0.0;;], [1.0000000000000002 -6.224560646830706e-17 -0.0]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 3.929684991464909e-33 0.0; 0.0 0.0 … 0.0 3.929684991464909e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.009311283477587973, 180.1325627314032, [-0.9128709291752769, -0.40824829046386296, 1.066462710204328e-16], [-164.4377799153399, -73.53881079196991, 1.9210466104658336e-14], [0.5701973342624466, 0.0, -0.001000000000000223], [-0.3801315561749642, -0.425, -0.001000000000000112], [2.0, 1.8438920547084208, 0.0], [2.425, 0.8707552709005122, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 22), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(23, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 1), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.0410331406828508, 0.21415951998452007, 180.1325627314032, [0.5477225575051659, 0.40824829046386296, -0.7302967433402215], [98.66266794920388, 73.53881079196991, -131.5502239322719], [-0.9503288904374106, 0.0, 0.7592631123499284], [-0.38013155617496436, 0.425, -0.001000000000000334], [2.0, -0.22402361088338507, 0.0], [1.575, 0.8707552709005121, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 23), (cable = Rible.Apparatus{RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}, Rible.DistanceSpringDamper{3, Float64}, Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}}(24, RibleTensegrity.CableJoint{Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}}(Hen2Egg{Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}, Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}}(Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 6, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([0.894427190999916 0.0 0.447213595499958; 0.0 1.0 0.0; -0.447213595499958 0.0 0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.6082104898799429, 0.0, 1.2164209797598857]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.9503288904374106, 0.0, 0.7592631123499284], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [394.6506717968143, 3.410605131648481e-13, -197.32533589840753], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.5701973342624466, 0.0, -0.001000000000000223], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [-394.6506717968166, 3.552713678800501e-13, 197.32533589840784], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.19006577808748204, 0.0, 0.3791315561749641], Rible.Axes{3, Float64, 9}([-0.0 0.4472135954999579 0.8944271909999159; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.4472135954999579]), [0.0, 0.0, 0.0], [-0.0, -0.0, 1.36], [0.0, 1.2164209797598857, -0.6082104898799429]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.0 0.447213595499958 0.894427190999916; 1.0 0.0 0.0; 0.0 0.8944271909999159 -0.447213595499958]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, 0.0, 2.0928844914162055e-17], [0.9999999999999999; 0.0; -1.2594923403361582e-17;;], [1.0000000000000002 -0.0 -1.2594923403361588e-17]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.6359719861470482e-34 0.0; 0.0 0.0 … 0.0 2.6359719861470482e-34], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 0.0 -0.8944271909999157]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2), Signifier{RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}}(RigidBody{3, 3, Float64, 9, NC{3, 1, Float64, 3, 6, 36}, RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}, GeometryBasics.Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}, (:position, :normal, :color), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}, Vector{ColorTypes.RGB{Float32}}}, Vector{GeometryBasics.TriangleFace{UInt64}}}}(RigidBodyProperty{3, Float64, 9}(true, true, 1, :generic, 5.0, [1.2041666666666666 0.0 0.0; 0.0 1.2041666666666666 0.0; 0.0 0.0 1.2041666666666666], Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.0, 0.0), Locus{3, Float64, 9}[Locus{3, Float64, 9}([-0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.85, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0), Locus{3, Float64, 9}([0.0, 0.0, 0.0], Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), 0.05, 0.0)]), RigidBodyState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.447213595499958 -0.4000000000000001 0.7999999999999999; 7.703719777548943e-33 0.894427190999916 0.447213595499958; -0.894427190999916 0.19999999999999982 -0.4000000000000001]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.30410524493997143, 0.06799999999999999, -0.136]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}[Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([0.38013155617496425, 0.42499999999999993, 1.5195262246998569], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [-197.32533589840767, 5.684341886080802e-14, -394.65067179681455], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-0.38013155617496436, 0.425, -0.001000000000000334], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [197.32533589840875, -3.552713678800501e-13, 394.6506717968158], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0]), Rible.LocusState{3, 3, Float64, 9}(Rible.CartesianFrame{3, 3, Float64, 9}([-5.551115123125783e-17, 0.425, 0.7592631123499283], Rible.Axes{3, Float64, 9}([-0.4 0.8 -0.4472135954999579; 0.8944271909999159 0.4472135954999579 0.0; 0.19999999999999996 -0.4 -0.8944271909999159]), [0.0, 0.0, 0.0], [0.0, -0.0, 0.34], [0.06799999999999999, -0.136, -0.30410524493997143]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], Rible.ContactState{3, Float64, 9}(false, true, Inf, Rible.Axes{3, Float64, 9}([-0.4000000000000001 0.7999999999999999 -0.447213595499958; 0.894427190999916 0.447213595499958 0.0; 0.19999999999999984 -0.4000000000000001 -0.894427190999916]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]), [1.0, 0.0, 0.0])]), NC{3, 1, Float64, 3, 6, 36}(1, 1, LNCData{3, 1, Float64, 3}([-0.85, -5.041580985354026e-17, 1.642545849667324e-17], [0.9999999999999999; 4.527166157508215e-17; 8.758042979726618e-18;;], [1.0000000000000002 4.5271661575082174e-17 8.758042979726621e-18]), [1 0 … 0 0; 0 1 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], [0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 1 0; 0 0 … 0 1], LinearAlgebra.Symmetric{Int64, SparseArrays.SparseMatrixCSC{Int64, Int64}}[[0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 2 0; 0 0 … 0 2]], 1, [1]), RigidBodyCache{StaticArraysCore.SMatrix{3, 6, Float64, 18}, InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}, StaticArraysCore.MMatrix{1, 6, Float64, 6}}([1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002], StaticArraysCore.SMatrix{3, 6, Float64, 18}[[1.0 0.0 … 0.0 0.0; 0.0 1.0 … 2.1385526102475876e-33 0.0; 0.0 0.0 … 0.0 2.1385526102475876e-33], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 1.7000000000000004 0.0; 0.0 0.0 … 0.0 1.7000000000000004], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.8500000000000002 0.0; 0.0 0.0 … 0.0 0.8500000000000002]], InertiaCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, StaticArraysCore.MVector{6, Float64}}(sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [5.0, 4.250000000000001, 5.0, 4.250000000000001, 5.0, 4.250000000000001, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668, 4.250000000000001, 4.816666666666668], 6, 6), sparse([1, 4, 2, 5, 3, 6, 1, 4, 2, 5, 3, 6], [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6], [0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, 0.8000000000000004, -0.7058823529411766, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194, -0.7058823529411767, 0.8304498269896194], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), sparse(Int64[], Int64[], Float64[], 6, 6), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], false), [0.0 0.0 … 8.881784197001253e-17 -1.7888543819998315]), Mesh{3, Float64, GeometryBasics.TriangleFace{UInt64}}(...)), 2)), 0), Rible.DistanceSpringDamper{3, Float64}(4000.0, 0.0, false, Rible.DistanceSpringDamperState{3, Float64}(0.996, 1.041033140682851, -0.009311283477587695, 180.1325627314041, [-0.9128709291752769, 0.40824829046386285, -1.0664627102043277e-16], [-164.4377799153407, 73.53881079197026, -1.921046610465843e-14], [0.5701973342624466, 0.0, -0.001000000000000223], [-0.38013155617496436, 0.425, -0.001000000000000334], [2.0, 1.8438920547084208, 0.0], [1.575, 0.8707552709005121, 0.0])), 0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], Rible.ApparatusCache{Vector{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Matrix{Float64}, Matrix{Float64}, Vector{Float64}, Matrix{Float64}, Matrix{Float64}, @NamedTuple{J::Matrix{Float64}, DJ::Matrix{Float64}, D::StaticArraysCore.MMatrix{3, 3, Float64, 9}, Im::StaticArraysCore.SMatrix{3, 3, Float64, 9}}}(Float64[], sparse(Int64[], Int64[], Float64[], 0, 12), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], Matrix{Float64}(undef, 0, 12), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], (J = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], DJ = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], D = [0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 0.0 0.0], Im = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0]))), val_id = 24)], Rible.FunctionOperator{Main.var"#20#21", Main.var"#22#23", Vector{Float64}, Matrix{Float64}}(Main.var"#20#21"(), Main.var"#22#23"(), [0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996  …  0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996], [1.0 0.0 … 0.0 0.0; 0.0 1.0 … 0.0 0.0; … ; 0.0 0.0 … 1.0 0.0; 0.0 0.0 … 0.0 1.0]), (values = [0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996  …  0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996],))], Coalition(1, 1, 1, 72, 1, [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  63, 64, 65, 66, 67, 68, 69, 70, 71, 72]], [[1]], 24, [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  15, 16, 17, 18, 19, 20, 21, 22, 23, 24]]), (c = [0.38013155617496425, 0.42499999999999993, 1.5195262246998569, -0.44721359549995787, 4.4408920985006264e-17, -0.8944271909999157, -0.3801315561749642, -0.425, -0.001000000000000112, 0.4472135954999578  …  0.0, 0.0, -1.2164209797598855, 0.0, 2.0, -0.22402361088338507, 0.0, 0.0, 1.2164209797598855, 0.0], e = [14.563220780874822], u = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])), CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}[CoordinatesState{Float64, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}}(0.0, [0.38013155617496425, 0.42499999999999993, 1.5195262246998569, -0.44721359549995787, 4.4408920985006264e-17, -0.8944271909999157, -0.3801315561749642, -0.425, -0.001000000000000112, 0.4472135954999578  …  0.7592631123499285, -0.8944271909999157, 0.0, 0.44721359549995787, -0.9503288904374106, 0.0, 0.7592631123499284, 0.8944271909999157, 0.0, -0.44721359549995787], [1.575, 1.1292447290994878, 0.0, -1.509903313490213e-17, -0.1520526224699857, 0.0, 2.425, 0.8707552709005122, 0.0, 0.0  …  0.0, 0.0, -1.2164209797598855, 0.0, 2.0, -0.22402361088338507, 0.0, 0.0, 1.2164209797598855, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0800249583553523e-12, -2.984279490192421e-13, 1.2505552149377763e-12, 335.453071027295, -6.039613253960853e-13, 670.906142054587, -2.2737367544323206e-13, 3.410605131648481e-13, -1.9895196601282805e-12, -335.4530710272935  …  5.684341886080801e-13, 670.9061420545863, -2.4158453015843368e-14, -335.4530710272918, -2.2737367544323206e-12, 6.963318810448982e-13, 3.126388037344441e-13, -670.9061420545884, 6.039613253960853e-13, 335.4530710272934], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float64[], [7.875, 5.0, 0.0, 6.693750000000001, 4.066903300442394, 0.0, 12.125, 5.0, 0.0, 10.306250000000002  …  0.0, 8.5, 3.5930059604109363, 0.0, 10.0, 4.049671109562588, 0.0, 8.500000000000002, 4.906994039589064, 0.0], [2.1385526102475876e-33, 1.7000000000000004, 0.8500000000000002, 3.929684991464909e-33, 1.7000000000000004, 0.8500000000000002, 0.0, 1.7, 0.85, 0.0  …  0.996, 4000.0, 0.0, 0.996, 4000.0, 0.0, 0.996, 4000.0, 0.0, 0.996])], Vector{Rible.Contact{Float64}}[[Rible.Contact{Float64}(1, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(2, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(3, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(4, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(5, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(6, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(7, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(8, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(9, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(10, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(11, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(12, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(13, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(14, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(15, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(16, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(17, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])), Rible.Contact{Float64}(18, 0.05, 0.0, Rible.ContactState{3, Float64, 9}(false, true, 1.0, Rible.Axes{3, Float64, 9}([-0.0 -0.0 1.0; 1.0 -0.0 0.0; -0.0 1.0 0.0]), [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]))]], @NamedTuple{na::Int64, bodyid2act_idx::Vector{Vector{Int64}}, persistent_idx::Vector{Int64}, activated_bits::BitVector, H::LinearAlgebra.Diagonal{Float64, Vector{Float64}}, activated_restitution_coefficients::Vector{Float64}, D::Matrix{Float64}, Dper::Matrix{Float64}, Dimp::Matrix{Float64}, ∂Dq̇∂q::Matrix{Float64}, ∂DᵀΛ∂q::Matrix{Float64}, ŕ::Vector{Float64}, L::Matrix{Float64}, Lv::Matrix{Float64}, Λ::Vector{Float64}, Γ::Vector{Float64}}[(na = 0, bodyid2act_idx = [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]], persistent_idx = [], activated_bits = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], H = Diagonal(Float64[]), activated_restitution_coefficients = [], D = Matrix{Float64}(undef, 0, 36), Dper = Matrix{Float64}(undef, 0, 36), Dimp = Matrix{Float64}(undef, 0, 36), ∂Dq̇∂q = Matrix{Float64}(undef, 0, 36), ∂DᵀΛ∂q = [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0], ŕ = [], L = Matrix{Float64}(undef, 0, 0), Lv = Matrix{Float64}(undef, 0, 0), Λ = [], Γ = [])], [(c = [0.38013155617496425, 0.42499999999999993, 1.5195262246998569, -0.44721359549995787, 4.4408920985006264e-17, -0.8944271909999157, -0.3801315561749642, -0.425, -0.001000000000000112, 0.4472135954999578  …  0.0, 0.0, -1.2164209797598855, 0.0, 2.0, -0.22402361088338507, 0.0, 0.0, 1.2164209797598855, 0.0], e = [14.563220780874822], u = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])]), Rible.NoPolicy(), Rible.StaticEnvironment{Vector{HalfSpace{Float64, 3}}, Rible.Gravity{Float64}}(HalfSpace{Float64, 3}[HalfSpace{Float64, 3}([0.0, 0.0, 1.0], -0.0, [0.0, 0.0, 0.0])], Rible.Gravity{Float64}(9.81)), Objective{Vector{Int64}, Rible.var"#default_objective##0#default_objective##1"}([0], [0], [0], [0], Rible.var"#default_objective##0#default_objective##1"()), RestitutionFrictionCombined{NewtonRestitution, CoulombFriction}(NewtonRestitution(), CoulombFriction()), Rible.Naive(), NamedTuple())

Solve

Use the Zhong06 integrator with an inner-layer contact solver, and run a short simulation:

julia
solver = RB.DynamicsSolver(
    RB.Zhong06(),
    RB.InnerLayerContactSolver(RB.InteriorPointMethod()),
)

result = RB.solve!(prob, solver; tspan=(0.0, 1.0), dt=1e-2, ftol=1e-12, maxiters=200, exception=false);
[ Info: Zhong06_CCP_Constant_Mass_Inner_Cache

Progress:   2%|▉                                        |  ETA: 0:09:15
Progress: 100%|█████████████████████████████████████████| Time: 0:00:11

The simulation trajectory is stored inside bot and can be accessed via result.

Visualize

Use the trajectory plotting helper to inspect the rolling motion:

julia
using CairoMakie
plot_traj!(bot; do_slide = false, show_loci = false, show_mesh = true, show_ground = false)

Next Steps

You have completed your first Rible.jl dynamics simulation. Continue with:


This page was generated using Literate.jl.