Skip to content

Instantly share code, notes, and snippets.

@azeey
Created May 27, 2026 21:58
Show Gist options
  • Select an option

  • Save azeey/acf33ed620084a4e82e032edc0bd4bce to your computer and use it in GitHub Desktop.

Select an option

Save azeey/acf33ed620084a4e82e032edc0bd4bce to your computer and use it in GitHub Desktop.
<?xml version="1.0" ?>
<sdf version="1.9">
<!-- Generated by Antigravity - Gemini 3.0 Pro -->
<world name="orrery_demo_world">
<physics name="1ms" type="ignored">
<max_step_size>0.001</max_step_size>
<real_time_factor>1.0</real_time_factor>
</physics>
<!-- Configure the world to use our newly validated MuJoCo physics plugin by default -->
<plugin filename="gz-sim-physics-system" name="gz::sim::systems::Physics">
<engine><filename>gz-physics-mujoco-plugin</filename></engine>
</plugin>
<plugin filename="gz-sim-sensors-system" name="gz::sim::systems::Sensors">
</plugin>
<scene>
<ambient>0.5 0.5 0.5 1</ambient>
<background>0.05 0.05 0.07 1</background>
</scene>
<gui fullscreen="0">
<plugin filename="MinimalScene" name="3D View">
<gz-gui>
<property type="bool" key="showTitleBar">false</property>
<property type="string" key="state">docked</property>
</gz-gui>
<engine>ogre2</engine>
<scene>scene</scene>
<ambient_light>0.5 0.5 0.5 1</ambient_light>
<background_color>0.05 0.05 0.07 1</background_color>
<camera_pose>0 -3.2 1.5 0 0.12 1.570796327</camera_pose>
</plugin>
</gui>
<!-- ==================== 3-POINT STUDIO LIGHTING SYSTEM ==================== -->
<!-- 1. KEY LIGHT: Offset front-right spotlight casting dynamic primary shadows -->
<light type="spot" name="key_light">
<cast_shadows>true</cast_shadows>
<pose>1.8 1.8 30 0 0 0</pose>
<diffuse>1.0 1.0 1.0 1</diffuse>
<specular>0.8 0.8 0.8 1</specular>
<intensity>3.5</intensity>
<direction>-0.4 -0.4 -0.9</direction>
<attenuation>
<range>100</range>
<constant>0.0</constant>
<linear>0.0</linear>
<quadratic>0.02</quadratic>
</attenuation>
<spot>
<inner_angle>0.1</inner_angle>
<outer_angle>3.0</outer_angle>
<falloff>0.5</falloff>
</spot>
<visualize>false</visualize>
</light>
<!-- 2. FILL LIGHT: Offset front-left shadowless point light to soften key shadows -->
<light type="point" name="fill_light">
<cast_shadows>false</cast_shadows>
<pose>-1.8 1.8 4.0 0 0 0</pose>
<diffuse>0.9 0.9 1.0 1</diffuse>
<specular>0.2 0.2 0.2 1</specular>
<intensity>1.2</intensity>
<attenuation>
<range>20</range>
<constant>0.3</constant>
<linear>0.05</linear>
<quadratic>0.01</quadratic>
</attenuation>
<visualize>false</visualize>
</light>
<!-- 3. RIM/BACK LIGHT: High-pose back point light creating dynamic specular outlines -->
<light type="point" name="rim_light">
<cast_shadows>false</cast_shadows>
<pose>0 -2.2 3.8 0 0 0</pose>
<diffuse>0.95 0.95 1.0 1</diffuse>
<specular>0.7 0.7 0.7 1</specular>
<intensity>1.0</intensity>
<attenuation>
<range>20</range>
<constant>0.2</constant>
<linear>0.04</linear>
<quadratic>0.01</quadratic>
</attenuation>
<visualize>false</visualize>
</light>
<!-- Light Grey Matte Ground Floor for high-contrast shadows -->
<model name="ground_plane">
<static>true</static>
<link name="link">
<collision name="collision">
<geometry>
<plane>
<normal>0 0 1</normal>
<size>100 100</size>
</plane>
</geometry>
</collision>
<visual name="visual">
<cast_shadows>false</cast_shadows>
<geometry>
<plane>
<normal>0 0 1</normal>
<size>100 100</size>
</plane>
</geometry>
<material>
<ambient>0.65 0.65 0.68 1</ambient>
<diffuse>0.65 0.65 0.68 1</diffuse>
<specular>0.1 0.1 0.1 1</specular>
</material>
</visual>
</link>
</model>
<!-- The Kinetic Orrery/Solar System Master Model -->
<model name="kinetic_orrery">
<pose>0 0 0 0 0 0</pose>
<!-- ==================== CENTRAL STAND AND SUN ==================== -->
<link name="sun_base">
<inertial>
<mass>200.0</mass>
<inertia><ixx>1.0</ixx><iyy>1.0</iyy><izz>1.0</izz></inertia>
</inertial>
<!-- Sturdy Pedestal Base Stand (Dark Brushed Bronze) -->
<visual name="base_pedestal">
<pose>0 0 0.05 0 0 0</pose>
<geometry>
<cylinder><radius>0.4</radius><length>0.1</length></cylinder>
</geometry>
<material>
<ambient>0.25 0.2 0.15 1</ambient>
<diffuse>0.25 0.2 0.15 1</diffuse>
<specular>0.8 0.7 0.6 1</specular>
</material>
</visual>
<collision name="base_pedestal_collision">
<pose>0 0 0.05 0 0 0</pose>
<geometry>
<cylinder><radius>0.4</radius><length>0.1</length></cylinder>
</geometry>
</collision>
<!-- Vertical Central Spindle Shaft (Concentric Center) -->
<visual name="center_shaft">
<pose>0 0 0.3 0 0 0</pose>
<geometry>
<cylinder><radius>0.03</radius><length>0.4</length></cylinder>
</geometry>
<material>
<ambient>0.8 0.8 0.85 1</ambient>
<diffuse>0.8 0.8 0.85 1</diffuse>
<specular>1.0 1.0 1.0 1</specular>
</material>
</visual>
<!-- THE CENTRAL SUN: Glowing Orange-Yellow Emissive Star -->
<visual name="sun_body">
<pose>0 0 0.55 0 0 0</pose>
<geometry><sphere><radius>0.22</radius></sphere></geometry>
<material>
<ambient>1.0 0.6 0.0 1</ambient>
<diffuse>1.0 0.6 0.0 1</diffuse>
<specular>1.0 1.0 1.0 1</specular>
<emissive>1.0 0.4 0.0 1</emissive>
</material>
</visual>
<!-- Sun point light to cast realistic shadows radially outward onto the ground floor -->
<light type="point" name="sun_light">
<cast_shadows>true</cast_shadows>
<pose>0 0 0.55 0 0 0</pose>
<diffuse>1.0 0.8 0.4 1</diffuse>
<specular>0.5 0.5 0.5 1</specular>
<intensity>0.8</intensity>
<attenuation>
<range>15</range>
<constant>0.5</constant>
<linear>0.2</linear>
<quadratic>0.05</quadratic>
</attenuation>
<visualize>false</visualize>
</light>
</link>
<joint name="world_joint" type="fixed">
<parent>world</parent>
<child>sun_base</child>
</joint>
<!-- ==================== CONCENTRIC Stacked ORBITAL ARMS ==================== -->
<!-- 1. MERCURY ARM: Concentric arm at Z=0.15, orbital radius=0.6 -->
<link name="mercury_arm">
<pose>0 0 0.15 0 0 0</pose>
<inertial>
<mass>1.2</mass>
<inertia><ixx>0.01</ixx><iyy>0.04</iyy><izz>0.04</izz></inertia>
</inertial>
<!-- Stacked Center Collar (Polished Brass) -->
<visual name="mercury_collar">
<geometry><cylinder><radius>0.05</radius><length>0.03</length></cylinder></geometry>
<material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse><specular>0.9 0.8 0.5 1</specular></material>
</visual>
<!-- Horizontal Arm Bar (Extends -0.18 to +0.6) -->
<visual name="mercury_arm_bar">
<pose>0.21 0 0 0 0 0</pose>
<geometry><box><size>0.78 0.012 0.012</size></box></geometry>
<material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse></material>
</visual>
<!-- Back Counterweight (Sleek Bronze Sphere) -->
<visual name="mercury_counterweight">
<pose>-0.18 0 0 0 0 0</pose>
<geometry><sphere><radius>0.035</radius></sphere></geometry>
<material><ambient>0.25 0.2 0.15 1</ambient><diffuse>0.25 0.2 0.15 1</diffuse><specular>0.8 0.7 0.6 1</specular></material>
</visual>
<!-- Upward polar spindle holding the planet -->
<visual name="mercury_spindle">
<pose>0.6 0 0.05 0 0 0</pose>
<geometry><cylinder><radius>0.005</radius><length>0.1</length></cylinder></geometry>
<material><ambient>0.8 0.8 0.85 1</ambient><diffuse>0.8 0.8 0.85 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
<collision name="mercury_arm_collision">
<pose>0.21 0 0 0 0 0</pose>
<geometry><box><size>0.78 0.012 0.012</size></box></geometry>
</collision>
</link>
<!-- Mercury Arm Joint: Mimics Master Earth Arm with speed ratio 4.15 (T_mercury = 0.24 Earth years) -->
<joint name="mercury_arm_joint" type="revolute">
<parent>sun_base</parent>
<child>mercury_arm</child>
<axis>
<xyz>0 0 1</xyz>
<mimic joint="earth_arm_joint" axis="axis">
<multiplier>4.15</multiplier>
</mimic>
</axis>
</joint>
<!-- 2. VENUS ARM: Concentric arm at Z=0.22, orbital radius=0.9 -->
<link name="venus_arm">
<pose>0 0 0.22 0 0 0</pose>
<inertial>
<mass>1.5</mass>
<inertia><ixx>0.01</ixx><iyy>0.08</iyy><izz>0.08</izz></inertia>
</inertial>
<!-- Center Collar -->
<visual name="venus_collar">
<geometry><cylinder><radius>0.045</radius><length>0.03</length></cylinder></geometry>
<material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse><specular>0.9 0.8 0.5 1</specular></material>
</visual>
<!-- Arm Bar (Extends -0.25 to +0.9) -->
<visual name="venus_arm_bar">
<pose>0.325 0 0 0 0 0</pose>
<geometry><box><size>1.15 0.014 0.014</size></box></geometry>
<material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse></material>
</visual>
<!-- Back Counterweight -->
<visual name="venus_counterweight">
<pose>-0.25 0 0 0 0 0</pose>
<geometry><sphere><radius>0.04</radius></sphere></geometry>
<material><ambient>0.25 0.2 0.15 1</ambient><diffuse>0.25 0.2 0.15 1</diffuse><specular>0.8 0.7 0.6 1</specular></material>
</visual>
<!-- Spindle -->
<visual name="venus_spindle">
<pose>0.9 0 0.06 0 0 0</pose>
<geometry><cylinder><radius>0.005</radius><length>0.12</length></cylinder></geometry>
<material><ambient>0.8 0.8 0.85 1</ambient><diffuse>0.8 0.8 0.85 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
<collision name="venus_arm_collision">
<pose>0.325 0 0 0 0 0</pose>
<geometry><box><size>1.15 0.014 0.014</size></box></geometry>
</collision>
</link>
<!-- Venus Arm Joint: Mimics Master Earth Arm with speed ratio 1.62 (T_venus = 0.615 Earth years) -->
<joint name="venus_arm_joint" type="revolute">
<parent>sun_base</parent>
<child>venus_arm</child>
<axis>
<xyz>0 0 1</xyz>
<mimic joint="earth_arm_joint" axis="axis">
<multiplier>1.62</multiplier>
</mimic>
</axis>
</joint>
<!-- 3. EARTH ARM: Concentric arm at Z=0.29, orbital radius=1.3 (THE ACTIVE MASTER DRIVER COLLAR) -->
<link name="earth_arm">
<pose>0 0 0.29 0 0 0</pose>
<inertial>
<mass>2.0</mass>
<inertia><ixx>0.02</ixx><iyy>0.15</iyy><izz>0.15</izz></inertia>
</inertial>
<!-- Center Collar -->
<visual name="earth_collar">
<geometry><cylinder><radius>0.04</radius><length>0.03</length></cylinder></geometry>
<material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse><specular>0.9 0.8 0.5 1</specular></material>
</visual>
<!-- Arm Bar (Extends -0.32 to +1.3) -->
<visual name="earth_arm_bar">
<pose>0.49 0 0 0 0 0</pose>
<geometry><box><size>1.62 0.016 0.016</size></box></geometry>
<material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse></material>
</visual>
<!-- Back Counterweight -->
<visual name="earth_counterweight">
<pose>-0.32 0 0 0 0 0</pose>
<geometry><sphere><radius>0.045</radius></sphere></geometry>
<material><ambient>0.25 0.2 0.15 1</ambient><diffuse>0.25 0.2 0.15 1</diffuse><specular>0.8 0.7 0.6 1</specular></material>
</visual>
<!-- Spindle -->
<visual name="earth_spindle">
<pose>1.3 0 0.07 0 0 0</pose>
<geometry><cylinder><radius>0.005</radius><length>0.14</length></cylinder></geometry>
<material><ambient>0.8 0.8 0.85 1</ambient><diffuse>0.8 0.8 0.85 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
<collision name="earth_arm_collision">
<pose>0.49 0 0 0 0 0</pose>
<geometry><box><size>1.62 0.016 0.016</size></box></geometry>
</collision>
</link>
<!-- The single primary Active Driver Hinge, controlled at constant velocity -->
<joint name="earth_arm_joint" type="revolute">
<parent>sun_base</parent>
<child>earth_arm</child>
<axis>
<xyz>0 0 1</xyz>
<dynamics><damping>0.2</damping></dynamics>
</axis>
</joint>
<!-- 4. MARS ARM: Concentric arm at Z=0.36, orbital radius=1.7 -->
<link name="mars_arm">
<pose>0 0 0.36 0 0 0</pose>
<inertial>
<mass>2.2</mass>
<inertia><ixx>0.02</ixx><iyy>0.22</iyy><izz>0.22</izz></inertia>
</inertial>
<!-- Center Collar -->
<visual name="mars_collar">
<geometry><cylinder><radius>0.035</radius><length>0.03</length></cylinder></geometry>
<material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse><specular>0.9 0.8 0.5 1</specular></material>
</visual>
<!-- Arm Bar (Extends -0.40 to +1.7) -->
<visual name="mars_arm_bar">
<pose>0.65 0 0 0 0 0</pose>
<geometry><box><size>2.1 0.018 0.018</size></box></geometry>
<material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse></material>
</visual>
<!-- Back Counterweight -->
<visual name="mars_counterweight">
<pose>-0.4 0 0 0 0 0</pose>
<geometry><sphere><radius>0.05</radius></sphere></geometry>
<material><ambient>0.25 0.2 0.15 1</ambient><diffuse>0.25 0.2 0.15 1</diffuse><specular>0.8 0.7 0.6 1</specular></material>
</visual>
<!-- Spindle -->
<visual name="mars_spindle">
<pose>1.7 0 0.08 0 0 0</pose>
<geometry><cylinder><radius>0.005</radius><length>0.16</length></cylinder></geometry>
<material><ambient>0.8 0.8 0.85 1</ambient><diffuse>0.8 0.8 0.85 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
<collision name="mars_arm_collision">
<pose>0.65 0 0 0 0 0</pose>
<geometry><box><size>2.1 0.018 0.018</size></box></geometry>
</collision>
</link>
<!-- Mars Arm Joint: Mimics Master Earth Arm with speed ratio 0.53 (T_mars = 1.88 Earth years) -->
<joint name="mars_arm_joint" type="revolute">
<parent>sun_base</parent>
<child>mars_arm</child>
<axis>
<xyz>0 0 1</xyz>
<mimic joint="earth_arm_joint" axis="axis">
<multiplier>0.53</multiplier>
</mimic>
</axis>
</joint>
<!-- ==================== THE GEMSTONE PLANET SPHERES ==================== -->
<!-- 1. MERCURY BODY (Orange-Brown Gemstone at local Spindle x=0.6, z=0.1) -->
<link name="mercury">
<pose>0.6 0 0.25 0 0 0</pose>
<inertial>
<mass>0.2</mass>
<inertia><ixx>0.0001</ixx><iyy>0.0001</iyy><izz>0.0001</izz></inertia>
</inertial>
<visual name="mercury_visual">
<geometry><sphere><radius>0.05</radius></sphere></geometry>
<material>
<ambient>0.85 0.45 0.1 1</ambient>
<diffuse>0.85 0.45 0.1 1</diffuse>
<specular>0.9 0.9 0.9 1</specular>
</material>
</visual>
<collision name="mercury_collision">
<geometry><sphere><radius>0.05</radius></sphere></geometry>
</collision>
</link>
<!-- Mercury Spin Joint: Mimics Master Earth Arm with fast multiplier 3.0 -->
<joint name="mercury_spin_joint" type="revolute">
<parent>mercury_arm</parent>
<child>mercury</child>
<pose>0 0 0 0 0 0</pose>
<axis>
<xyz>0 0 1</xyz>
<mimic joint="earth_arm_joint" axis="axis">
<multiplier>3.0</multiplier>
</mimic>
</axis>
</joint>
<!-- 2. VENUS BODY (Cream-Yellow Gemstone at local Spindle x=0.9, z=0.12) -->
<link name="venus">
<pose>0.9 0 0.34 0 0 0</pose>
<inertial>
<mass>0.4</mass>
<inertia><ixx>0.0005</ixx><iyy>0.0005</iyy><izz>0.0005</izz></inertia>
</inertial>
<visual name="venus_visual">
<geometry><sphere><radius>0.075</radius></sphere></geometry>
<material>
<ambient>0.9 0.8 0.55 1</ambient>
<diffuse>0.9 0.8 0.55 1</diffuse>
<specular>0.6 0.6 0.6 1</specular>
</material>
</visual>
<collision name="venus_collision">
<geometry><sphere><radius>0.075</radius></sphere></geometry>
</collision>
</link>
<!-- Venus Spin Joint: Mimics Master Earth Arm with retrograde slow spin multiplier -2.0 -->
<joint name="venus_spin_joint" type="revolute">
<parent>venus_arm</parent>
<child>venus</child>
<pose>0 0 0 0 0 0</pose>
<axis>
<xyz>0 0 1</xyz>
<mimic joint="earth_arm_joint" axis="axis">
<multiplier>-2.0</multiplier>
</mimic>
</axis>
</joint>
<!-- 3. EARTH BODY (Vibrant Deep Blue & Green Marble at local Spindle x=1.3, z=0.14) -->
<link name="earth">
<pose>1.3 0 0.43 0 0 0</pose>
<inertial>
<mass>0.6</mass>
<inertia><ixx>0.001</ixx><iyy>0.001</iyy><izz>0.001</izz></inertia>
</inertial>
<visual name="earth_visual">
<geometry><sphere><radius>0.09</radius></sphere></geometry>
<material>
<ambient>0.05 0.35 0.7 1</ambient>
<diffuse>0.05 0.35 0.7 1</diffuse>
<specular>0.8 0.8 0.9 1</specular>
</material>
</visual>
<!-- Symmetrical Green Landmass Guides Visual -->
<visual name="earth_land_1">
<pose>0.05 0.05 0.05 0 0 0</pose>
<geometry><sphere><radius>0.045</radius></sphere></geometry>
<material><ambient>0.1 0.5 0.15 1</ambient><diffuse>0.1 0.5 0.15 1</diffuse></material>
</visual>
<visual name="earth_land_2">
<pose>-0.05 -0.05 -0.05 0 0 0</pose>
<geometry><sphere><radius>0.045</radius></sphere></geometry>
<material><ambient>0.1 0.5 0.15 1</ambient><diffuse>0.1 0.5 0.15 1</diffuse></material>
</visual>
<collision name="earth_collision">
<geometry><sphere><radius>0.09</radius></sphere></geometry>
</collision>
</link>
<!-- Earth Spin Joint: Mimics Master Earth Arm with multiplier 12.0 (self-rotation speed) -->
<joint name="earth_spin_joint" type="revolute">
<parent>earth_arm</parent>
<child>earth</child>
<pose>0 0 0 0 0 0</pose>
<axis>
<xyz>0 0 1</xyz>
<mimic joint="earth_arm_joint" axis="axis">
<multiplier>12.0</multiplier>
</mimic>
</axis>
</joint>
<!-- ==================== CONCENTRIC EARTH-MOON SUB-SYSTEM ==================== -->
<!-- Moon Arm: concentric rotation collar centered on Earth link, extending out to local radius 0.22 -->
<link name="moon_arm">
<pose>1.3 0 0.50 0 0 0</pose>
<inertial>
<mass>0.15</mass>
<inertia><ixx>0.0001</ixx><iyy>0.001</iyy><izz>0.001</izz></inertia>
</inertial>
<!-- Center brass collar pivot ring -->
<visual name="moon_collar">
<geometry><cylinder><radius>0.02</radius><length>0.01</length></cylinder></geometry>
<material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse><specular>0.9 0.8 0.5 1</specular></material>
</visual>
<!-- Fine horizontal moon arm pointer (extends -0.06 to +0.22) -->
<visual name="moon_arm_bar">
<pose>0.08 0 0 0 0 0</pose>
<geometry><box><size>0.28 0.006 0.006</size></box></geometry>
<material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse></material>
</visual>
<!-- Moon tiny counterbalance sphere -->
<visual name="moon_counterweight">
<pose>-0.06 0 0 0 0 0</pose>
<geometry><sphere><radius>0.012</radius></sphere></geometry>
<material><ambient>0.25 0.2 0.15 1</ambient><diffuse>0.25 0.2 0.15 1</diffuse></material>
</visual>
<!-- Upward Moon support spindle -->
<visual name="moon_spindle">
<pose>0.22 0 0.02 0 0 0</pose>
<geometry><cylinder><radius>0.002</radius><length>0.04</length></cylinder></geometry>
<material><ambient>0.8 0.8 0.85 1</ambient><diffuse>0.8 0.8 0.85 1</diffuse></material>
</visual>
<collision name="moon_arm_collision">
<pose>0.08 0 0 0 0 0</pose>
<geometry><box><size>0.28 0.006 0.006</size></box></geometry>
</collision>
</link>
<!-- Moon Arm Joint: Mimics Master Earth Arm with high multiplier 13.3 (Moon orbits Earth 13.3 times per year) -->
<joint name="moon_arm_joint" type="revolute">
<parent>earth</parent>
<child>moon_arm</child>
<pose>0 0 0.07 0 0 0</pose>
<axis>
<xyz>0 0 1</xyz>
<mimic joint="earth_arm_joint" axis="axis">
<multiplier>13.3</multiplier>
</mimic>
</axis>
</joint>
<!-- THE MOON BODY (Matte White gemstone sphere at local Spindle tip) -->
<link name="moon">
<pose>1.52 0 0.54 0 0 0</pose>
<inertial>
<mass>0.05</mass>
<inertia><ixx>0.00001</ixx><iyy>0.00001</iyy><izz>0.00001</izz></inertia>
</inertial>
<visual name="moon_visual">
<geometry><sphere><radius>0.025</radius></sphere></geometry>
<material>
<ambient>0.85 0.85 0.85 1</ambient>
<diffuse>0.85 0.85 0.85 1</diffuse>
<specular>0.1 0.1 0.1 1</specular>
</material>
</visual>
<collision name="moon_collision">
<geometry><sphere><radius>0.025</radius></sphere></geometry>
</collision>
</link>
<!-- Moon Spin Joint: Mimics Master Earth Arm with 13.3 ratio to remain PERFECTLY TIDAL LOCKED to Earth -->
<joint name="moon_spin_joint" type="revolute">
<parent>moon_arm</parent>
<child>moon</child>
<pose>0 0 0 0 0 0</pose>
<axis>
<xyz>0 0 1</xyz>
<mimic joint="earth_arm_joint" axis="axis">
<multiplier>13.3</multiplier>
</mimic>
</axis>
</joint>
<!-- 4. MARS BODY (Vibrant Rust-Red Jasper Gemstone at local Spindle x=1.7, z=0.16) -->
<link name="mars">
<pose>1.7 0 0.52 0 0 0</pose>
<inertial>
<mass>0.5</mass>
<inertia><ixx>0.0003</ixx><iyy>0.0003</iyy><izz>0.0003</izz></inertia>
</inertial>
<visual name="mars_visual">
<geometry><sphere><radius>0.065</radius></sphere></geometry>
<material>
<ambient>0.75 0.25 0.12 1</ambient>
<diffuse>0.75 0.25 0.12 1</diffuse>
<specular>0.6 0.6 0.6 1</specular>
</material>
</visual>
<!-- Symmetrical White Polar Spindle Caps Visual -->
<visual name="mars_polar_ice">
<pose>0 0 0.06 0 0 0</pose>
<geometry><sphere><radius>0.025</radius></sphere></geometry>
<material><ambient>0.95 0.95 0.95 1</ambient><diffuse>0.95 0.95 0.95 1</diffuse></material>
</visual>
<collision name="mars_collision">
<geometry><sphere><radius>0.065</radius></sphere></geometry>
</collision>
</link>
<!-- Mars Spin Joint: Mimics Master Earth Arm with multiplier 10.0 -->
<joint name="mars_spin_joint" type="revolute">
<parent>mars_arm</parent>
<child>mars</child>
<pose>0 0 0 0 0 0</pose>
<axis>
<xyz>0 0 1</xyz>
<mimic joint="earth_arm_joint" axis="axis">
<multiplier>10.0</multiplier>
</mimic>
</axis>
</joint>
<!-- Concentric Master Joint Controller System to automatically spin the entire model -->
<plugin filename="gz-sim-joint-controller-system" name="gz::sim::systems::JointController">
<joint_name>earth_arm_joint</joint_name>
<use_force_commands>true</use_force_commands>
<topic>cmd_vel</topic>
<initial_velocity>0.08</initial_velocity>
</plugin>
</model>
<!-- GUI Perspective View looking down at the Orrery at a rich, front-isometric angle -->
<gui fullscreen="0">
<camera name="user_camera">
<pose>0 -3.6 2.2 0 0.45 1.5708</pose>
</camera>
</gui>
<!-- ==================== HEADLESS SCREENSHOT CAPTURE CAMERA ==================== -->
<model name="camera_model">
<static>true</static>
<pose>0 -3.6 2.2 0 0.45 1.5708</pose>
<link name="link">
<sensor name="camera" type="camera">
<camera>
<horizontal_fov>1.047</horizontal_fov>
<image>
<width>800</width>
<height>800</height>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
<save enabled="false">
</save>
</camera>
<always_on>1</always_on>
<update_rate>0</update_rate>
<visualize>true</visualize>
</sensor>
</link>
</model>
</world>
</sdf>
<?xml version="1.0" ?>
<sdf version="1.9">
<!-- Generated by Antigravity - Gemini 3.0 Pro -->
<world name="mimic_joint_demo_world">
<physics name="1ms" type="ignored">
<max_step_size>0.001</max_step_size>
<real_time_factor>1.0</real_time_factor>
</physics>
<!-- Configure the world to use our newly validated MuJoCo physics plugin by default -->
<plugin filename="gz-sim-physics-system" name="gz::sim::systems::Physics">
<engine><filename>gz-physics-mujoco-plugin</filename></engine>
</plugin>
<plugin filename="gz-sim-sensors-system" name="gz::sim::systems::Sensors">
</plugin>
<scene>
<ambient>0.5 0.5 0.5 1</ambient>
<background>0.05 0.05 0.07 1</background>
</scene>
<gui fullscreen="0">
<plugin filename="MinimalScene" name="3D View">
<gz-gui>
<property type="bool" key="showTitleBar">false</property>
<property type="string" key="state">docked</property>
</gz-gui>
<engine>ogre2</engine>
<scene>scene</scene>
<ambient_light>0.5 0.5 0.5 1</ambient_light>
<background_color>0.05 0.05 0.07 1</background_color>
<camera_pose>0 -3.2 1.5 0 0.12 1.570796327</camera_pose>
</plugin>
</gui>
<!-- ==================== 3-POINT STUDIO LIGHTING SYSTEM ==================== -->
<!-- 1. KEY LIGHT: Offset front-right spotlight casting dynamic primary shadows -->
<light type="spot" name="key_light">
<cast_shadows>true</cast_shadows>
<pose>1.8 1.8 30 0 0 0</pose>
<diffuse>1.0 1.0 1.0 1</diffuse>
<specular>0.8 0.8 0.8 1</specular>
<intensity>3.5</intensity>
<direction>-0.4 -0.4 -0.9</direction>
<attenuation>
<range>100</range>
<constant>0.0</constant>
<linear>0.0</linear>
<quadratic>0.02</quadratic>
</attenuation>
<spot>
<inner_angle>0.1</inner_angle>
<outer_angle>3.0</outer_angle>
<falloff>0.5</falloff>
</spot>
<visualize>false</visualize>
</light>
<!-- 2. FILL LIGHT: Offset front-left shadowless point light to soften key shadows -->
<light type="point" name="fill_light">
<cast_shadows>false</cast_shadows>
<pose>-1.8 1.8 4.0 0 0 0</pose>
<diffuse>0.9 0.9 1.0 1</diffuse>
<specular>0.2 0.2 0.2 1</specular>
<intensity>1.2</intensity>
<attenuation>
<range>20</range>
<constant>0.3</constant>
<linear>0.05</linear>
<quadratic>0.01</quadratic>
</attenuation>
<visualize>false</visualize>
</light>
<!-- 3. RIM/BACK LIGHT: High-pose back point light creating dynamic specular outlines -->
<light type="point" name="rim_light">
<cast_shadows>false</cast_shadows>
<pose>0 -2.2 3.8 0 0 0</pose>
<diffuse>0.95 0.95 1.0 1</diffuse>
<specular>0.7 0.7 0.7 1</specular>
<intensity>1.0</intensity>
<attenuation>
<range>20</range>
<constant>0.2</constant>
<linear>0.04</linear>
<quadratic>0.01</quadratic>
</attenuation>
<visualize>false</visualize>
</light>
<!-- Light Grey Matte Ground Floor for high-contrast shadows -->
<model name="ground_plane">
<static>true</static>
<link name="link">
<collision name="collision">
<geometry>
<plane>
<normal>0 0 1</normal>
<size>100 100</size>
</plane>
</geometry>
</collision>
<visual name="visual">
<cast_shadows>false</cast_shadows>
<geometry>
<plane>
<normal>0 0 1</normal>
<size>100 100</size>
</plane>
</geometry>
<material>
<ambient>0.65 0.65 0.68 1</ambient>
<diffuse>0.65 0.65 0.68 1</diffuse>
<specular>0.1 0.1 0.1 1</specular>
</material>
</visual>
</link>
</model>
<!-- Visually stunning Scissor Lift & Dynamic Suspension Assembly -->
<model name="scissor_lift_suspension">
<pose>0 0 0 0 0 0</pose>
<!-- Heavy Base Anchor Support Bracket -->
<link name="base">
<inertial>
<mass>150.0</mass>
<inertia>
<ixx>1.0</ixx>
<iyy>1.0</iyy>
<izz>1.0</izz>
</inertia>
</inertial>
<!-- Central Pedestal Block -->
<visual name="pedestal">
<pose>0 0 0.1 0 0 0</pose>
<geometry>
<box>
<size>1.2 0.3 0.2</size>
</box>
</geometry>
<material>
<ambient>0.1 0.1 0.12 1</ambient>
<diffuse>0.1 0.1 0.12 1</diffuse>
<specular>0.7 0.7 0.8 1</specular>
</material>
</visual>
<collision name="pedestal_collision">
<pose>0 0 0.1 0 0 0</pose>
<geometry>
<box>
<size>1.2 0.3 0.2</size>
</box>
</geometry>
</collision>
<!-- Left Hinge Mount Visual Bracket -->
<visual name="left_mount">
<pose>-0.3 0 0.2 0 0 0</pose>
<geometry><box><size>0.1 0.22 0.1</size></box></geometry>
<material><ambient>0.2 0.2 0.25 1</ambient><diffuse>0.2 0.2 0.25 1</diffuse></material>
</visual>
<!-- Right Hinge Mount Visual Bracket -->
<visual name="right_mount">
<pose>0.3 0 0.2 0 0 0</pose>
<geometry><box><size>0.1 0.22 0.1</size></box></geometry>
<material><ambient>0.2 0.2 0.25 1</ambient><diffuse>0.2 0.2 0.25 1</diffuse></material>
</visual>
</link>
<joint name="world_joint" type="fixed">
<parent>world</parent>
<child>base</child>
</joint>
<!-- ==================== TIER 1 SCISSOR BARS ==================== -->
<!-- Left side bar: navy blue, starts left x=-0.3, Y=-0.04, angles up-right to x=0.566 -->
<link name="left_bar_1">
<pose>-0.3 -0.04 0.2 0 0 0</pose>
<inertial>
<mass>1.5</mass>
<inertia><ixx>0.001</ixx><iyy>0.12</iyy><izz>0.12</izz></inertia>
</inertial>
<visual name="left_bar_1_visual">
<pose>0.4330127 0 0.25 0 -0.52359877559 0</pose>
<geometry><box><size>1.0 0.03 0.06</size></box></geometry>
<material>
<ambient>0.12 0.18 0.28 1</ambient>
<diffuse>0.12 0.18 0.28 1</diffuse>
<specular>0.8 0.8 0.9 1</specular>
</material>
</visual>
<!-- Chrome Axle Center Hinge Pin Visual -->
<visual name="left_bar_1_center_pin">
<pose>0.3 0.04 0.173205 1.570796327 0 0</pose>
<geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry>
<material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
<!-- Joint Axle Base Hinge Pin Visual -->
<visual name="left_bar_1_base_pin">
<pose>0 0.04 0 1.570796327 0 0</pose>
<geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry>
<material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
<collision name="left_bar_1_collision">
<pose>0.4330127 0 0.25 0 -0.52359877559 0</pose>
<geometry><box><size>1.0 0.03 0.06</size></box></geometry>
</collision>
</link>
<!-- Right side bar: maroon, starts right x=0.3, Y=0.04, angles up-left to x=-0.566 -->
<link name="right_bar_1">
<pose>0.3 0.04 0.2 0 0 0</pose>
<inertial>
<mass>1.5</mass>
<inertia><ixx>0.001</ixx><iyy>0.12</iyy><izz>0.12</izz></inertia>
</inertial>
<visual name="right_bar_1_visual">
<pose>-0.4330127 0 0.25 0 0.52359877559 0</pose>
<geometry><box><size>1.0 0.03 0.06</size></box></geometry>
<material>
<ambient>0.28 0.12 0.12 1</ambient>
<diffuse>0.28 0.12 0.12 1</diffuse>
<specular>0.9 0.8 0.8 1</specular>
</material>
</visual>
<!-- Joint Axle Base Hinge Pin Visual -->
<visual name="right_bar_1_base_pin">
<pose>0 -0.04 0 1.570796327 0 0</pose>
<geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry>
<material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
<collision name="right_bar_1_collision">
<pose>-0.4330127 0 0.25 0 0.52359877559 0</pose>
<geometry><box><size>1.0 0.03 0.06</size></box></geometry>
</collision>
</link>
<!-- Base Left Joint acts as our SINGLE Master Active Driver -->
<joint name="left_hinge_1" type="revolute">
<parent>base</parent>
<child>left_bar_1</child>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>0.10</lower>
<upper>1.20</upper>
</limit>
<dynamics>
<spring_reference>0.7854</spring_reference>
<spring_stiffness>240.0</spring_stiffness>
<damping>6.0</damping>
</dynamics>
</axis>
</joint>
<!-- Symmetrical Base Right Joint mimics Master Hinge with negative coupling (multiplier = -1) -->
<joint name="right_hinge_1" type="revolute">
<parent>base</parent>
<child>right_bar_1</child>
<axis>
<xyz>0 1 0</xyz>
<mimic joint="left_hinge_1" axis="axis">
<multiplier>-1.0</multiplier>
</mimic>
</axis>
</joint>
<!-- ==================== TIER 2 SCISSOR BARS ==================== -->
<!-- Left Path: Left 2 is maroon (up-left), starts at tip of Left 1 (x=0.566, Y=0.04) -->
<link name="right_bar_2">
<pose>0.56602540378 0.04 0.7 0 0 0</pose>
<inertial>
<mass>1.5</mass>
<inertia><ixx>0.001</ixx><iyy>0.12</iyy><izz>0.12</izz></inertia>
</inertial>
<visual name="right_bar_2_visual">
<pose>-0.4330127 0 0.25 0 0.52359877559 0</pose>
<geometry><box><size>1.0 0.03 0.06</size></box></geometry>
<material>
<ambient>0.28 0.12 0.12 1</ambient>
<diffuse>0.28 0.12 0.12 1</diffuse>
<specular>0.9 0.8 0.8 1</specular>
</material>
</visual>
<!-- Joint Axle Hinge Pin Visual -->
<visual name="right_bar_2_joint_pin">
<pose>0 -0.04 0 1.570796327 0 0</pose>
<geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry>
<material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
<collision name="right_bar_2_collision">
<pose>-0.4330127 0 0.25 0 0.52359877559 0</pose>
<geometry><box><size>1.0 0.03 0.06</size></box></geometry>
</collision>
</link>
<!-- Right Path: Right 2 is navy blue (up-right), starts at tip of Right 1 (x=-0.566, Y=-0.04) -->
<link name="left_bar_2">
<pose>-0.56602540378 -0.04 0.7 0 0 0</pose>
<inertial>
<mass>1.5</mass>
<inertia><ixx>0.001</ixx><iyy>0.12</iyy><izz>0.12</izz></inertia>
</inertial>
<visual name="left_bar_2_visual">
<pose>0.4330127 0 0.25 0 -0.52359877559 0</pose>
<geometry><box><size>1.0 0.03 0.06</size></box></geometry>
<material>
<ambient>0.12 0.18 0.28 1</ambient>
<diffuse>0.12 0.18 0.28 1</diffuse>
<specular>0.8 0.8 0.9 1</specular>
</material>
</visual>
<!-- Chrome Axle Center Hinge Pin Visual -->
<visual name="left_bar_2_center_pin">
<pose>0.56602540378 0.04 0.326795 1.570796327 0 0</pose>
<geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry>
<material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
<!-- Joint Axle Hinge Pin Visual -->
<visual name="left_bar_2_joint_pin">
<pose>0 0.04 0 1.570796327 0 0</pose>
<geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry>
<material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
<collision name="left_bar_2_collision">
<pose>0.4330127 0 0.25 0 -0.52359877559 0</pose>
<geometry><box><size>1.0 0.03 0.06</size></box></geometry>
</collision>
</link>
<!-- Hinge 2 Right (Left Path): parent Left 1, child Right 2. Rotates opposite (multiplier = -2.0) -->
<joint name="right_hinge_2" type="revolute">
<parent>left_bar_1</parent>
<child>right_bar_2</child>
<axis>
<xyz>0 1 0</xyz>
<mimic joint="left_hinge_1" axis="axis">
<multiplier>-2.0</multiplier>
</mimic>
</axis>
</joint>
<!-- Hinge 2 Left (Right Path): parent Right 1, child Left 2. Rotates positive (multiplier = 2.0) -->
<joint name="left_hinge_2" type="revolute">
<parent>right_bar_1</parent>
<child>left_bar_2</child>
<axis>
<xyz>0 1 0</xyz>
<mimic joint="left_hinge_1" axis="axis">
<multiplier>2.0</multiplier>
</mimic>
</axis>
</joint>
<!-- ==================== TIER 3 SCISSOR BARS ==================== -->
<!-- Left Path: Left 3 is navy blue (up-right), starts at tip of Right 2 (x=-0.3, Y=-0.04) -->
<link name="left_bar_3">
<pose>-0.3 -0.04 1.2 0 0 0</pose>
<inertial>
<mass>1.5</mass>
<inertia><ixx>0.001</ixx><iyy>0.12</iyy><izz>0.12</izz></inertia>
</inertial>
<visual name="left_bar_3_visual">
<pose>0.4330127 0 0.25 0 -0.52359877559 0</pose>
<geometry><box><size>1.0 0.03 0.06</size></box></geometry>
<material>
<ambient>0.12 0.18 0.28 1</ambient>
<diffuse>0.12 0.18 0.28 1</diffuse>
<specular>0.8 0.8 0.9 1</specular>
</material>
</visual>
<!-- Chrome Axle Center Hinge Pin Visual -->
<visual name="left_bar_3_center_pin">
<pose>0.3 0.04 0.173205 1.570796327 0 0</pose>
<geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry>
<material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
<!-- Joint Axle Hinge Pin Visual -->
<visual name="left_bar_3_joint_pin">
<pose>0 0.04 0 1.570796327 0 0</pose>
<geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry>
<material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
<collision name="left_bar_3_collision">
<pose>0.4330127 0 0.25 0 -0.52359877559 0</pose>
<geometry><box><size>1.0 0.03 0.06</size></box></geometry>
</collision>
</link>
<!-- Right Path: Right 3 is maroon (up-left), starts at tip of Left 2 (x=0.3, Y=0.04) -->
<link name="right_bar_3">
<pose>0.3 0.04 1.2 0 0 0</pose>
<inertial>
<mass>1.5</mass>
<inertia><ixx>0.001</ixx><iyy>0.12</iyy><izz>0.12</izz></inertia>
</inertial>
<visual name="right_bar_3_visual">
<pose>-0.4330127 0 0.25 0 0.52359877559 0</pose>
<geometry><box><size>1.0 0.03 0.06</size></box></geometry>
<material>
<ambient>0.28 0.12 0.12 1</ambient>
<diffuse>0.28 0.12 0.12 1</diffuse>
<specular>0.9 0.8 0.8 1</specular>
</material>
</visual>
<!-- Joint Axle Hinge Pin Visual -->
<visual name="right_bar_3_joint_pin">
<pose>0 -0.04 0 1.570796327 0 0</pose>
<geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry>
<material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
<collision name="right_bar_3_collision">
<pose>-0.4330127 0 0.25 0 0.52359877559 0</pose>
<geometry><box><size>1.0 0.03 0.06</size></box></geometry>
</collision>
</link>
<!-- Hinge 3 Left (Left Path): parent Right 2, child Left 3. Rotates positive (multiplier = 2.0) -->
<joint name="left_hinge_3" type="revolute">
<parent>right_bar_2</parent>
<child>left_bar_3</child>
<axis>
<xyz>0 1 0</xyz>
<mimic joint="left_hinge_1" axis="axis">
<multiplier>2.0</multiplier>
</mimic>
</axis>
</joint>
<!-- Hinge 3 Right (Right Path): parent Left 2, child Right 3. Rotates opposite (multiplier = -2.0) -->
<joint name="right_hinge_3" type="revolute">
<parent>left_bar_2</parent>
<child>right_bar_3</child>
<axis>
<xyz>0 1 0</xyz>
<mimic joint="left_hinge_1" axis="axis">
<multiplier>-2.0</multiplier>
</mimic>
</axis>
</joint>
<!-- ==================== TIER 4 SCISSOR BARS ==================== -->
<!-- Left Path: Left 4 is maroon (up-left), starts at tip of Left 3 (x=0.566, Y=0.04) -->
<link name="right_bar_4">
<pose>0.56602540378 0.04 1.7 0 0 0</pose>
<inertial>
<mass>1.5</mass>
<inertia><ixx>0.001</ixx><iyy>0.12</iyy><izz>0.12</izz></inertia>
</inertial>
<visual name="right_bar_4_visual">
<pose>-0.4330127 0 0.25 0 0.52359877559 0</pose>
<geometry><box><size>1.0 0.03 0.06</size></box></geometry>
<material>
<ambient>0.28 0.12 0.12 1</ambient>
<diffuse>0.28 0.12 0.12 1</diffuse>
<specular>0.9 0.8 0.8 1</specular>
</material>
</visual>
<!-- Joint Axle Hinge Pin Visual -->
<visual name="right_bar_4_joint_pin">
<pose>0 -0.04 0 1.570796327 0 0</pose>
<geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry>
<material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
<collision name="right_bar_4_collision">
<pose>-0.4330127 0 0.25 0 0.52359877559 0</pose>
<geometry><box><size>1.0 0.03 0.06</size></box></geometry>
</collision>
</link>
<!-- Right Path: Right 4 is navy blue (up-right), starts at tip of Right 3 (x=-0.566, Y=-0.04) -->
<link name="left_bar_4">
<pose>-0.56602540378 -0.04 1.7 0 0 0</pose>
<inertial>
<mass>1.5</mass>
<inertia><ixx>0.001</ixx><iyy>0.12</iyy><izz>0.12</izz></inertia>
</inertial>
<visual name="left_bar_4_visual">
<pose>0.4330127 0 0.25 0 -0.52359877559 0</pose>
<geometry><box><size>1.0 0.03 0.06</size></box></geometry>
<material>
<ambient>0.12 0.18 0.28 1</ambient>
<diffuse>0.12 0.18 0.28 1</diffuse>
<specular>0.8 0.8 0.9 1</specular>
</material>
</visual>
<!-- Chrome Axle Center Hinge Pin Visual -->
<visual name="left_bar_4_center_pin">
<pose>0.56602540378 0.04 0.326795 1.570796327 0 0</pose>
<geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry>
<material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
<!-- Joint Axle Hinge Pin Visual -->
<visual name="left_bar_4_joint_pin">
<pose>0 0.04 0 1.570796327 0 0</pose>
<geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry>
<material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
<collision name="left_bar_4_collision">
<pose>0.4330127 0 0.25 0 -0.52359877559 0</pose>
<geometry><box><size>1.0 0.03 0.06</size></box></geometry>
</collision>
</link>
<!-- Hinge 4 Right (Left Path): parent Left 3, child Right 4. Rotates opposite (multiplier = -2.0) -->
<joint name="right_hinge_4" type="revolute">
<parent>left_bar_3</parent>
<child>right_bar_4</child>
<axis>
<xyz>0 1 0</xyz>
<mimic joint="left_hinge_1" axis="axis">
<multiplier>-2.0</multiplier>
</mimic>
</axis>
</joint>
<!-- Hinge 4 Left (Right Path): parent Right 3, child Left 4. Rotates positive (multiplier = 2.0) -->
<joint name="left_hinge_4" type="revolute">
<parent>right_bar_3</parent>
<child>left_bar_4</child>
<axis>
<xyz>0 1 0</xyz>
<mimic joint="left_hinge_1" axis="axis">
<multiplier>2.0</multiplier>
</mimic>
</axis>
</joint>
<!-- ==================== TOP CARGO PLATFORM ==================== -->
<!-- The cargo platform lies flat (origin at x=-0.3, z=2.2; flat horizontal orientation) -->
<link name="platform">
<pose>-0.3 0 2.2 0 0 0</pose>
<inertial>
<mass>4.0</mass>
<inertia><ixx>0.05</ixx><iyy>0.25</iyy><izz>0.25</izz></inertia>
</inertial>
<!-- Main Platform Plate (Safety Yellow Matte Bed) -->
<visual name="platform_plate">
<pose>0.3 0 0.015 0 0 0</pose>
<geometry><box><size>1.4 0.24 0.03</size></box></geometry>
<material>
<ambient>0.95 0.75 0.05 1</ambient>
<diffuse>0.95 0.75 0.05 1</diffuse>
<specular>0.5 0.5 0.5 1</specular>
</material>
</visual>
<!-- Platform Plate Collision -->
<collision name="platform_plate_collision">
<pose>0.3 0 0.015 0 0 0</pose>
<geometry><box><size>1.4 0.24 0.03</size></box></geometry>
</collision>
<!-- ==================== PREMIUM OPEN WIREFRAME HANDRAILS ==================== -->
<!-- Front Handrail system (y = 0.11, z = 0.12) -->
<visual name="rail_front_pipe">
<pose>0.3 0.11 0.12 0 1.570796327 0</pose>
<geometry><cylinder><radius>0.006</radius><length>1.4</length></cylinder></geometry>
<material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material>
</visual>
<visual name="rail_front_post_left">
<pose>-0.39 0.11 0.06 0 0 0</pose>
<geometry><cylinder><radius>0.006</radius><length>0.12</length></cylinder></geometry>
<material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material>
</visual>
<visual name="rail_front_post_right">
<pose>0.99 0.11 0.06 0 0 0</pose>
<geometry><cylinder><radius>0.006</radius><length>0.12</length></cylinder></geometry>
<material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material>
</visual>
<visual name="rail_front_post_middle">
<pose>0.3 0.11 0.06 0 0 0</pose>
<geometry><cylinder><radius>0.006</radius><length>0.12</length></cylinder></geometry>
<material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material>
</visual>
<!-- Back Handrail system (y = -0.11, z = 0.12) -->
<visual name="rail_back_pipe">
<pose>0.3 -0.11 0.12 0 1.570796327 0</pose>
<geometry><cylinder><radius>0.006</radius><length>1.4</length></cylinder></geometry>
<material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material>
</visual>
<visual name="rail_back_post_left">
<pose>-0.39 -0.11 0.06 0 0 0</pose>
<geometry><cylinder><radius>0.006</radius><length>0.12</length></cylinder></geometry>
<material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material>
</visual>
<visual name="rail_back_post_right">
<pose>0.99 -0.11 0.06 0 0 0</pose>
<geometry><cylinder><radius>0.006</radius><length>0.12</length></cylinder></geometry>
<material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material>
</visual>
<visual name="rail_back_post_middle">
<pose>0.3 -0.11 0.06 0 0 0</pose>
<geometry><cylinder><radius>0.006</radius><length>0.12</length></cylinder></geometry>
<material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material>
</visual>
<!-- Left/Right Endcap Handrails -->
<visual name="rail_left_pipe">
<pose>-0.39 0 0.12 1.570796327 0 0</pose>
<geometry><cylinder><radius>0.006</radius><length>0.22</length></cylinder></geometry>
<material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material>
</visual>
<visual name="rail_right_pipe">
<pose>0.99 0 0.12 1.570796327 0 0</pose>
<geometry><cylinder><radius>0.006</radius><length>0.22</length></cylinder></geometry>
<material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material>
</visual>
<!-- ==================== SOLID BOX COLLISION CRADLE ==================== -->
<!-- Left rail collision cradle boundary wall -->
<collision name="fence_left_collision">
<pose>-0.39 0 0.06 0 0 0</pose>
<geometry><box><size>0.02 0.24 0.12</size></box></geometry>
</collision>
<!-- Right rail collision cradle boundary wall -->
<collision name="fence_right_collision">
<pose>0.99 0 0.06 0 0 0</pose>
<geometry><box><size>0.02 0.24 0.12</size></box></geometry>
</collision>
<!-- Front rail collision cradle boundary wall -->
<collision name="fence_front_collision">
<pose>0.3 0.11 0.06 0 0 0</pose>
<geometry><box><size>1.4 0.02 0.12</size></box></geometry>
</collision>
<!-- Back rail collision cradle boundary wall -->
<collision name="fence_back_collision">
<pose>0.3 -0.11 0.06 0 0 0</pose>
<geometry><box><size>1.4 0.02 0.12</size></box></geometry>
</collision>
<!-- Right Pivot Hinge Roller Axle Track Underside Support -->
<visual name="right_roller_track">
<pose>0.6 0 -0.015 0 0 0</pose>
<geometry><box><size>0.4 0.22 0.01</size></box></geometry>
<material><ambient>0.4 0.4 0.42 1</ambient><diffuse>0.4 0.4 0.42 1</diffuse></material>
</visual>
<!-- Left Platform Pivot Axle Visual Pin -->
<visual name="platform_joint_pin">
<pose>0 0 0 1.570796327 0 0</pose>
<geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry>
<material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material>
</visual>
</link>
<!-- Hinge connecting Right 4 (Left Path) to Platform mimics Left 1 with direct 1.0 ratio and zero offset -->
<joint name="platform_joint" type="revolute">
<parent>right_bar_4</parent>
<child>platform</child>
<axis>
<xyz>0 1 0</xyz>
<mimic joint="left_hinge_1" axis="axis">
<multiplier>1.0</multiplier>
</mimic>
</axis>
</joint>
</model>
<!-- ==================== DYNAMIC SPHERE PAYLOAD ==================== -->
<!-- Dynamic target cargo sphere rolling inside the safety cradle platform -->
<model name="payload_sphere_model">
<pose>0.3 0 2.4 0 0 0</pose>
<link name="payload_sphere">
<inertial>
<mass>6.0</mass>
<inertia><ixx>0.06</ixx><iyy>0.06</iyy><izz>0.06</izz></inertia>
</inertial>
<!-- Glowing Emerald-Green / Cyan Highly Specular Emissive Sphere -->
<visual name="sphere_visual">
<geometry><sphere><radius>0.16</radius></sphere></geometry>
<material>
<ambient>0.0 0.8 0.8 1</ambient>
<diffuse>0.0 0.8 0.8 1</diffuse>
<specular>1.0 1.0 1.0 1</specular>
<emissive>0.0 0.4 0.4 1</emissive>
</material>
</visual>
<collision name="sphere_collision">
<geometry><sphere><radius>0.16</radius></sphere></geometry>
</collision>
</link>
</model>
<!-- GUI users viewport camera pose pointing directly to the center of the scissor mechanism -->
<gui fullscreen="0">
<camera name="user_camera">
<pose>0 -3.2 1.5 0 0.12 1.570796327</pose>
</camera>
</gui>
<!-- ==================== HEADLESS SCREENSHOT CAPTURE CAMERA ==================== -->
<model name="camera_model">
<static>true</static>
<pose>0 -3.2 1.5 0 0.12 1.570796327</pose>
<link name="link">
<sensor name="camera" type="camera">
<camera>
<horizontal_fov>1.047</horizontal_fov>
<image>
<width>800</width>
<height>800</height>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
<save enabled="true">
<path>/Users/addisuzt/ws/rotary</path>
</save>
</camera>
<always_on>1</always_on>
<update_rate>0</update_rate>
<visualize>true</visualize>
</sensor>
</link>
</model>
</world>
</sdf>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment