{
  "geometries": {
    "ground": {
      "type": "PlaneGeometry",
      "options": [
        200,
        200
      ]
    },
    "feet": {
      "type": "BoxGeometry",
      "options": [
        7.25,
        3.15,
        7.85
      ]
    },
    "leg": {
      "type": "BoxGeometry",
      "options": [
        7.25,
        8.3,
        5.6
      ]
    },
    "thigh": {
      "type": "CylinderGeometry",
      "options": [
        3,
        3,
        7.25
      ]
    },
    "hip": {
      "type": "BoxGeometry",
      "options": [
        14.25,
        2,
        7.85
      ]
    },
    "body": {
      "type": "CylinderGeometry",
      "options": [
        8.48528137424,
        10.0762716319,
        12.3,
        4,
        1
      ]
    },
    "neck": {
      "type": "CylinderGeometry",
      "options": [
        2.4,
        2.4,
        11.5
      ]
    },
    "head_border": {
      "type": "TorusGeometry",
      "options": [
        4,
        1
      ]
    },
    "head_cap": {
      "type": "CircleGeometry",
      "options": [
        4
      ]
    },
    "head": {
      "type": "CylinderGeometry",
      "options": [
        5,
        5,
        7
      ]
    },
    "arm_joint": {
      "type": "SphereGeometry",
      "options": [
        2.5
      ]
    },
    "arm": {
      "type": "CylinderGeometry",
      "options": [
        2.5,
        2.5,
        5
      ]
    },
    "hand": {
      "type": "TorusGeometry",
      "options": [
        2,
        0.2,
        6,
        20,
        4.5
      ]
    }
  },
  "materials": {
    "black": {
      "type": "MeshStandardMaterial",
      "options": {
        "color": "rgb(0, 0, 0)",
        "roughness": 0.1
      }
    },
    "yellow": {
      "type": "MeshStandardMaterial",
      "options": {
        "color": "rgb(253, 255, 0)",
        "roughness": 0.1,
        "metalness": 1
      }
    },
    "blue": {
      "type": "MeshStandardMaterial",
      "options": {
        "color": "rgb(80, 92, 124)",
        "roughness": 0.1
      }
    },
    "dark_blue": {
      "type": "MeshStandardMaterial",
      "options": {
        "color": "rgb(40, 46, 60)",
        "roughness": 0.1
      }
    },
    "skin": {
      "type": "MeshStandardMaterial",
      "options": {
        "color": "rgb(246, 215, 179)",
        "roughness": 0.6
      }
    },
    "ground": {
      "type": "MeshStandardMaterial",
      "options": {
        "color": "rgb(94, 85, 56)",
        "roughness": 0.8
      },
      "texture": {
        "path": "textures/mud.jpg",
        "repeat": true
      } 
    },
    "moon": {
      "type": "MeshBasicMaterial",
      "options": { },
      "texture": {
        "path": "textures/moon.jpg"
      } 
    }
  },
  "objects": {
    "batman_logo": {
      "type": "OBJ",
      "url": "batman.obj",
      "material": "yellow",
      "position": [
        0,
        50,
        50
      ],
      "scale": [
        10,
        10,
        10
      ],
      "castShadow": true,
      "animation": "element.rotation.y += delta"
    },
    "batman": {
      "children": {
        "hip": {
          "castShadow": true,
          "geometry": "hip",
          "material": "black",
          "children": {
            "r_thigh": {
              "animation": "element.rotation.x = Math.sin(time*10)",
              "castShadow": true,
              "geometry": "thigh",
              "material": "black",
              "position": [
                -3.57,
                -3,
                0
              ],
              "rotation": [
                0,
                0,
                90
              ],
              "scale": [
                1,
                0.9,
                1
              ],
              "children": {
                "r_leg": {
                  "castShadow": true,
                  "geometry": "leg",
                  "material": "black",
                  "position": [
                    -4.15,
                    0,
                    -0.2
                  ],
                  "rotation": [
                    0,
                    0,
                    -90
                  ],
                  "children": {
                    "r_feet": {
                      "castShadow": true,
                      "geometry": "feet",
                      "material": "black",
                      "position": [
                        0,
                        -5.75,
                        1.125
                      ]
                    }
                  }
                }
              }
            },
            "l_thigh": {
              "animation": "element.rotation.x = -Math.sin(time*10)",
              "castShadow": true,
              "geometry": "thigh",
              "material": "black",
              "position": [
                3.57,
                -3,
                0
              ],
              "rotation": [
                0,
                0,
                90
              ],
              "scale": [
                1,
                0.9,
                1
              ],
              "children": {
                "l_leg": {
                  "castShadow": true,
                  "geometry": "leg",
                  "material": "black",
                  "position": [
                    -4.15,
                    0,
                    -0.2
                  ],
                  "rotation": [
                    0,
                    0,
                    -90
                  ],
                  "children": {
                    "l_feet": {
                      "castShadow": true,
                      "geometry": "feet",
                      "material": "black",
                      "position": [
                        0,
                        -5.75,
                        1.125
                      ]
                    }
                  }
                }
              }
            },
            "spine": {
              "type": "empty",
              "children": {
                "r_shoulder": {
                  "animation": "element.rotation.x = -Math.sin(time*10)",
                  "castShadow": true,
                  "geometry": "arm_joint",
                  "material": "black",
                  "position": [
                    -6.8,
                    9.5,
                    0
                  ],
                  "rotation": [
                    0,
                    0,
                    -20
                  ],
                  "children": {
                    "r_upper_arm": {
                      "castShadow": true,
                      "geometry": "arm",
                      "material": "black",
                      "position": [
                        0,
                        -2.75,
                        0
                      ],
                      "children": {
                        "r_elbow": {
                          "castShadow": true,
                          "geometry": "arm_joint",
                          "material": "black",
                          "position": [
                            0,
                            -2.75,
                            0
                          ],
                          "rotation": [
                            -30,
                            0,
                            0
                          ],
                          "children": {
                            "r_lower_arm": {
                              "castShadow": true,
                              "geometry": "arm",
                              "material": "black",
                              "position": [
                                0,
                                -2.75,
                                0
                              ],
                              "children": {
                                "r_wrist_helper": {
                                  "type": "empty",
                                  "position": [
                                    0,
                                    -3,
                                    0
                                  ],
                                  "children": {
                                    "r_hand": {
                                      "castShadow": true,
                                      "geometry": "hand",
                                      "material": "black",
                                      "position": [
                                        0,
                                        -2.4,
                                        0
                                      ],
                                      "rotation": [
                                        0,
                                        0,
                                        -36
                                      ],
                                      "scale": [
                                        1,
                                        1,
                                        9
                                      ]
                                    },
                                    "r_wrist": {
                                      "castShadow": true,
                                      "geometry": "arm",
                                      "material": "black",
                                      "scale": [
                                        0.5,
                                        0.25,
                                        0.5
                                      ]
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "l_shoulder": {
                  "animation": "element.rotation.x = Math.sin(time*10)",
                  "castShadow": true,
                  "geometry": "arm_joint",
                  "material": "black",
                  "position": [
                    6.8,
                    9.5,
                    0
                  ],
                  "rotation": [
                    0,
                    0,
                    20
                  ],
                  "children": {
                    "l_upper_arm": {
                      "castShadow": true,
                      "geometry": "arm",
                      "material": "black",
                      "position": [
                        0,
                        -2.75,
                        0
                      ],
                      "children": {
                        "l_elbow": {
                          "castShadow": true,
                          "geometry": "arm_joint",
                          "material": "black",
                          "position": [
                            0,
                            -2.75,
                            0
                          ],
                          "rotation": [
                            -30,
                            0,
                            0
                          ],
                          "children": {
                            "l_lower_arm": {
                              "castShadow": true,
                              "geometry": "arm",
                              "material": "black",
                              "position": [
                                0,
                                -2.75,
                                0
                              ],
                              "children": {
                                "r_wrist_helper": {
                                  "type": "empty",
                                  "position": [
                                    0,
                                    -3,
                                    0
                                  ],
                                  "children": {
                                    "l_hand": {
                                      "castShadow": true,
                                      "geometry": "hand",
                                      "material": "black",
                                      "position": [
                                        0,
                                        -2.4,
                                        0
                                      ],
                                      "rotation": [
                                        0,
                                        0,
                                        -36
                                      ],
                                      "scale": [
                                        1,
                                        1,
                                        9
                                      ]
                                    },
                                    "l_wrist": {
                                      "castShadow": true,
                                      "geometry": "arm",
                                      "material": "black",
                                      "scale": [
                                        0.5,
                                        0.25,
                                        0.5
                                      ]
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "neck": {
                  "castShadow": true,
                  "geometry": "neck",
                  "material": "skin",
                  "position": [
                    0,
                    19.05,
                    0
                  ],
                  "children": {
                    "head": {
                      "castShadow": true,
                      "geometry": "head",
                      "material": "skin"
                    },
                    "chin": {
                      "castShadow": true,
                      "geometry": "head_border",
                      "material": "skin",
                      "position": [
                        0,
                        -3.5,
                        0
                      ],
                      "rotation": [
                        90,
                        0,
                        0
                      ],
                      "children": {
                        "head_cap_bottom": {
                          "castShadow": true,
                          "geometry": "head_cap",
                          "material": "skin",
                          "position": [
                            0,
                            0,
                            1
                          ]
                        }
                      }
                    },
                    "scalp": {
                      "castShadow": true,
                      "geometry": "head_border",
                      "material": "skin",
                      "position": [
                        0,
                        3.5,
                        0
                      ],
                      "rotation": [
                        90,
                        0,
                        0
                      ],
                      "children": {
                        "head_cap_top": {
                          "castShadow": true,
                          "geometry": "head_cap",
                          "material": "skin",
                          "position": [
                            0,
                            0,
                            -1
                          ],
                          "rotation": [
                            0,
                            180,
                            0
                          ]
                        }
                      }
                    }
                  }
                },
                "body_helper": {
                  "type": "empty",
                  "scale": [
                    1,
                    1,
                    0.55087719298
                  ],
                  "children": {
                    "body": {
                      "castShadow": true,
                      "geometry": "body",
                      "material": "black",
                      "position": [
                        0,
                        7.15,
                        0
                      ],
                      "rotation": [
                        0,
                        45,
                        0
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "ground": {
      "animation": "element.material.map.offset.y -= delta",
      "geometry": "ground",
      "material": "ground",
      "rotation": [
        -90,
        0,
        0
      ],
      "position": [
        0,
        -14,
        0
      ],
      "receiveShadow": true
    },
    "targets": {
      "children": {
        "backlight_tagret": {
          "type": "AxesHelper",
          "position": [
            0,
            10,
            10
          ]
        }
      }
    },
    "moon": {
      "geometry": "ground",
      "material": "moon",
      "scale": [
        0.7,
        0.7, 
        0.7
      ],
      "position": [
        300,
        300, 
        -300
      ],
      "rotation": [
        45, -45, 0
      ]
    },
    "lights": {
      "children": {
        "front_light": {
          "type": "SpotLight",
          "position": [
            0,
            -13,
            30
          ],
          "intensity": 10000,
          "target": "chin",
          "color": "rgb(150, 0, 0)"
        },
        "front_light_helper": {
          "type": "SpotLightHelper",
          "target": "front_light"
        },
        "right_backlight": {
          "type": "DirectionalLight",
          "target": "backlight_tagret",
          "position": [
            50,
            30,
            -5
          ],
          "color": "rgb(252, 132, 3)",
          "castShadow": true
        },
        "right_backlight_helper": {
          "type": "DirectionalLightHelper",
          "target": "right_backlight"
        },
        "left_backlight": {
          "type": "DirectionalLight",
          "target": "backlight_tagret",
          "position": [
            -50,
            30,
            -5
          ],
          "color": "rgb(3, 15, 252)",
          "castShadow": true
        },
        "left_backlight_helper": {
          "type": "DirectionalLightHelper",
          "target": "left_backlight"
        },
        "ambient": {
          "type": "AmbientLight",
          "intensity": 0.3
        },
        "right_pointlight": {
          "type": "PointLight",
          "position": [
            20,
            10,
            -30
          ],
          "color": "orange",
          "intensity": 10000
        },
        "right_pointlight_helper": {
          "type": "PointLightHelper",
          "target": "right_pointlight"
        },
        "left_pointlight": {
          "type": "PointLight",
          "position": [
            -20,
            10,
            -30
          ],
          "color": "darkblue",
          "intensity": 10000
        },
        "left_pointlight_helper": {
          "type": "PointLightHelper",
          "target": "left_pointlight"
        },
        "batlight": {
          "type": "SpotLight",
          "position": [
            0,
            80,
            50
          ],
          "angle": 20,
          "intensity": 5000000,
          "color": "rgb(195, 163, 33)",
          "castShadow": true,
          "target": "batman_logo"
        },
        "batlight_helper": {
          "type": "SpotLightHelper",
          "target": "batlight"
        }
      }
    }
  }
}