# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: brax/physics/config.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='brax/physics/config.proto',
  package='brax',
  syntax='proto3',
  serialized_options=None,
  create_key=_descriptor._internal_create_key,
  serialized_pb=b'\n\x19\x62rax/physics/config.proto\x12\x04\x62rax\"*\n\x07Vector3\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\t\n\x01z\x18\x03 \x01(\x02\"W\n\x06\x46rozen\x12\x1f\n\x08position\x18\x01 \x01(\x0b\x32\r.brax.Vector3\x12\x1f\n\x08rotation\x18\x02 \x01(\x0b\x32\r.brax.Vector3\x12\x0b\n\x03\x61ll\x18\x03 \x01(\x08\"\x83\x01\n\x04\x42ody\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\tcolliders\x18\x02 \x03(\x0b\x32\x0e.brax.Collider\x12\x1e\n\x07inertia\x18\x03 \x01(\x0b\x32\r.brax.Vector3\x12\x0c\n\x04mass\x18\x04 \x01(\x02\x12\x1c\n\x06\x66rozen\x18\x05 \x01(\x0b\x32\x0c.brax.Frozen\"\xcd\x03\n\x08\x43ollider\x12\x1f\n\x08position\x18\x01 \x01(\x0b\x32\r.brax.Vector3\x12\x1f\n\x08rotation\x18\x02 \x01(\x0b\x32\r.brax.Vector3\x12!\n\x03\x62ox\x18\x03 \x01(\x0b\x32\x12.brax.Collider.BoxH\x00\x12%\n\x05plane\x18\x04 \x01(\x0b\x32\x14.brax.Collider.PlaneH\x00\x12\'\n\x06sphere\x18\x05 \x01(\x0b\x32\x15.brax.Collider.SphereH\x00\x12)\n\x07\x63\x61psule\x18\x06 \x01(\x0b\x32\x16.brax.Collider.CapsuleH\x00\x12-\n\theightMap\x18\x07 \x01(\x0b\x32\x18.brax.Collider.HeightMapH\x00\x1a&\n\x03\x42ox\x12\x1f\n\x08halfsize\x18\x01 \x01(\x0b\x32\r.brax.Vector3\x1a\x07\n\x05Plane\x1a\x18\n\x06Sphere\x12\x0e\n\x06radius\x18\x01 \x01(\x02\x1a\x36\n\x07\x43\x61psule\x12\x0e\n\x06radius\x18\x01 \x01(\x02\x12\x0e\n\x06length\x18\x02 \x01(\x02\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x05\x1a\'\n\tHeightMap\x12\x0c\n\x04size\x18\x01 \x01(\x02\x12\x0c\n\x04\x64\x61ta\x18\x02 \x03(\x02\x42\x06\n\x04type\"\xf7\x02\n\x05Joint\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tstiffness\x18\x02 \x01(\x02\x12\x0e\n\x06parent\x18\x03 \x01(\t\x12\r\n\x05\x63hild\x18\x04 \x01(\t\x12$\n\rparent_offset\x18\x05 \x01(\x0b\x32\r.brax.Vector3\x12#\n\x0c\x63hild_offset\x18\x06 \x01(\x0b\x32\r.brax.Vector3\x12\x1f\n\x08rotation\x18\x07 \x01(\x0b\x32\r.brax.Vector3\x12\x17\n\x0f\x61ngular_damping\x18\x08 \x01(\x02\x12&\n\x0b\x61ngle_limit\x18\t \x03(\x0b\x32\x11.brax.Joint.Range\x12\x1b\n\x0elimit_strength\x18\n \x01(\x02H\x00\x88\x01\x01\x12\x1b\n\x0espring_damping\x18\x0b \x01(\x02H\x01\x88\x01\x01\x1a!\n\x05Range\x12\x0b\n\x03min\x18\x01 \x01(\x02\x12\x0b\n\x03max\x18\x02 \x01(\x02\x42\x11\n\x0f_limit_strengthB\x11\n\x0f_spring_damping\"\xa4\x01\n\x08\x41\x63tuator\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05joint\x18\x02 \x01(\t\x12\x10\n\x08strength\x18\x03 \x01(\x02\x12\'\n\x06torque\x18\x04 \x01(\x0b\x32\x15.brax.Actuator.TorqueH\x00\x12%\n\x05\x61ngle\x18\x05 \x01(\x0b\x32\x14.brax.Actuator.AngleH\x00\x1a\x08\n\x06Torque\x1a\x07\n\x05\x41ngleB\x06\n\x04type\"\xa0\x02\n\x0c\x44\x65\x66\x61ultState\x12-\n\x06\x61ngles\x18\x01 \x03(\x0b\x32\x1d.brax.DefaultState.JointAngle\x12\"\n\x03qps\x18\x02 \x03(\x0b\x32\x15.brax.DefaultState.QP\x1a\x38\n\nJointAngle\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1c\n\x05\x61ngle\x18\x02 \x01(\x0b\x32\r.brax.Vector3\x1a\x82\x01\n\x02QP\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1a\n\x03pos\x18\x02 \x01(\x0b\x32\r.brax.Vector3\x12\x1a\n\x03rot\x18\x03 \x01(\x0b\x32\r.brax.Vector3\x12\x1a\n\x03vel\x18\x04 \x01(\x0b\x32\r.brax.Vector3\x12\x1a\n\x03\x61ng\x18\x05 \x01(\x0b\x32\r.brax.Vector3\"\xb1\x03\n\x06\x43onfig\x12\x1a\n\x06\x62odies\x18\x01 \x03(\x0b\x32\n.brax.Body\x12\x1b\n\x06joints\x18\x02 \x03(\x0b\x32\x0b.brax.Joint\x12!\n\tactuators\x18\x03 \x03(\x0b\x32\x0e.brax.Actuator\x12\x12\n\nelasticity\x18\x04 \x01(\x02\x12\x10\n\x08\x66riction\x18\x05 \x01(\x02\x12\x1e\n\x07gravity\x18\x06 \x01(\x0b\x32\r.brax.Vector3\x12\x18\n\x10velocity_damping\x18\x07 \x01(\x02\x12\x17\n\x0f\x61ngular_damping\x18\x08 \x01(\x02\x12\x15\n\rbaumgarte_erp\x18\t \x01(\x02\x12.\n\x0f\x63ollide_include\x18\n \x03(\x0b\x32\x15.brax.Config.NamePair\x12\n\n\x02\x64t\x18\x0b \x01(\x02\x12\x10\n\x08substeps\x18\x0c \x01(\x05\x12\x1c\n\x06\x66rozen\x18\r \x01(\x0b\x32\x0c.brax.Frozen\x12$\n\x08\x64\x65\x66\x61ults\x18\x0e \x03(\x0b\x32\x12.brax.DefaultState\x1a)\n\x08NamePair\x12\r\n\x05\x66irst\x18\x01 \x01(\t\x12\x0e\n\x06second\x18\x02 \x01(\tb\x06proto3'
)




_VECTOR3 = _descriptor.Descriptor(
  name='Vector3',
  full_name='brax.Vector3',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='x', full_name='brax.Vector3.x', index=0,
      number=1, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='y', full_name='brax.Vector3.y', index=1,
      number=2, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='z', full_name='brax.Vector3.z', index=2,
      number=3, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=35,
  serialized_end=77,
)


_FROZEN = _descriptor.Descriptor(
  name='Frozen',
  full_name='brax.Frozen',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='position', full_name='brax.Frozen.position', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='rotation', full_name='brax.Frozen.rotation', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='all', full_name='brax.Frozen.all', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=79,
  serialized_end=166,
)


_BODY = _descriptor.Descriptor(
  name='Body',
  full_name='brax.Body',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='brax.Body.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=b"".decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='colliders', full_name='brax.Body.colliders', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='inertia', full_name='brax.Body.inertia', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='mass', full_name='brax.Body.mass', index=3,
      number=4, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='frozen', full_name='brax.Body.frozen', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=169,
  serialized_end=300,
)


_COLLIDER_BOX = _descriptor.Descriptor(
  name='Box',
  full_name='brax.Collider.Box',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='halfsize', full_name='brax.Collider.Box.halfsize', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=586,
  serialized_end=624,
)

_COLLIDER_PLANE = _descriptor.Descriptor(
  name='Plane',
  full_name='brax.Collider.Plane',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=626,
  serialized_end=633,
)

_COLLIDER_SPHERE = _descriptor.Descriptor(
  name='Sphere',
  full_name='brax.Collider.Sphere',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='radius', full_name='brax.Collider.Sphere.radius', index=0,
      number=1, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=635,
  serialized_end=659,
)

_COLLIDER_CAPSULE = _descriptor.Descriptor(
  name='Capsule',
  full_name='brax.Collider.Capsule',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='radius', full_name='brax.Collider.Capsule.radius', index=0,
      number=1, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='length', full_name='brax.Collider.Capsule.length', index=1,
      number=2, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='end', full_name='brax.Collider.Capsule.end', index=2,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=661,
  serialized_end=715,
)

_COLLIDER_HEIGHTMAP = _descriptor.Descriptor(
  name='HeightMap',
  full_name='brax.Collider.HeightMap',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='size', full_name='brax.Collider.HeightMap.size', index=0,
      number=1, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='data', full_name='brax.Collider.HeightMap.data', index=1,
      number=2, type=2, cpp_type=6, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=717,
  serialized_end=756,
)

_COLLIDER = _descriptor.Descriptor(
  name='Collider',
  full_name='brax.Collider',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='position', full_name='brax.Collider.position', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='rotation', full_name='brax.Collider.rotation', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='box', full_name='brax.Collider.box', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='plane', full_name='brax.Collider.plane', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='sphere', full_name='brax.Collider.sphere', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='capsule', full_name='brax.Collider.capsule', index=5,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='heightMap', full_name='brax.Collider.heightMap', index=6,
      number=7, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[_COLLIDER_BOX, _COLLIDER_PLANE, _COLLIDER_SPHERE, _COLLIDER_CAPSULE, _COLLIDER_HEIGHTMAP, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='type', full_name='brax.Collider.type',
      index=0, containing_type=None,
      create_key=_descriptor._internal_create_key,
    fields=[]),
  ],
  serialized_start=303,
  serialized_end=764,
)


_JOINT_RANGE = _descriptor.Descriptor(
  name='Range',
  full_name='brax.Joint.Range',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='min', full_name='brax.Joint.Range.min', index=0,
      number=1, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='max', full_name='brax.Joint.Range.max', index=1,
      number=2, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1071,
  serialized_end=1104,
)

_JOINT = _descriptor.Descriptor(
  name='Joint',
  full_name='brax.Joint',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='brax.Joint.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=b"".decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='stiffness', full_name='brax.Joint.stiffness', index=1,
      number=2, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='parent', full_name='brax.Joint.parent', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=b"".decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='child', full_name='brax.Joint.child', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=b"".decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='parent_offset', full_name='brax.Joint.parent_offset', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='child_offset', full_name='brax.Joint.child_offset', index=5,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='rotation', full_name='brax.Joint.rotation', index=6,
      number=7, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='angular_damping', full_name='brax.Joint.angular_damping', index=7,
      number=8, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='angle_limit', full_name='brax.Joint.angle_limit', index=8,
      number=9, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='limit_strength', full_name='brax.Joint.limit_strength', index=9,
      number=10, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='spring_damping', full_name='brax.Joint.spring_damping', index=10,
      number=11, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[_JOINT_RANGE, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='_limit_strength', full_name='brax.Joint._limit_strength',
      index=0, containing_type=None,
      create_key=_descriptor._internal_create_key,
    fields=[]),
    _descriptor.OneofDescriptor(
      name='_spring_damping', full_name='brax.Joint._spring_damping',
      index=1, containing_type=None,
      create_key=_descriptor._internal_create_key,
    fields=[]),
  ],
  serialized_start=767,
  serialized_end=1142,
)


_ACTUATOR_TORQUE = _descriptor.Descriptor(
  name='Torque',
  full_name='brax.Actuator.Torque',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1284,
  serialized_end=1292,
)

_ACTUATOR_ANGLE = _descriptor.Descriptor(
  name='Angle',
  full_name='brax.Actuator.Angle',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1294,
  serialized_end=1301,
)

_ACTUATOR = _descriptor.Descriptor(
  name='Actuator',
  full_name='brax.Actuator',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='brax.Actuator.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=b"".decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='joint', full_name='brax.Actuator.joint', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=b"".decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='strength', full_name='brax.Actuator.strength', index=2,
      number=3, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='torque', full_name='brax.Actuator.torque', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='angle', full_name='brax.Actuator.angle', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[_ACTUATOR_TORQUE, _ACTUATOR_ANGLE, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='type', full_name='brax.Actuator.type',
      index=0, containing_type=None,
      create_key=_descriptor._internal_create_key,
    fields=[]),
  ],
  serialized_start=1145,
  serialized_end=1309,
)


_DEFAULTSTATE_JOINTANGLE = _descriptor.Descriptor(
  name='JointAngle',
  full_name='brax.DefaultState.JointAngle',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='brax.DefaultState.JointAngle.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=b"".decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='angle', full_name='brax.DefaultState.JointAngle.angle', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1411,
  serialized_end=1467,
)

_DEFAULTSTATE_QP = _descriptor.Descriptor(
  name='QP',
  full_name='brax.DefaultState.QP',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='brax.DefaultState.QP.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=b"".decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='pos', full_name='brax.DefaultState.QP.pos', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='rot', full_name='brax.DefaultState.QP.rot', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='vel', full_name='brax.DefaultState.QP.vel', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='ang', full_name='brax.DefaultState.QP.ang', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1470,
  serialized_end=1600,
)

_DEFAULTSTATE = _descriptor.Descriptor(
  name='DefaultState',
  full_name='brax.DefaultState',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='angles', full_name='brax.DefaultState.angles', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='qps', full_name='brax.DefaultState.qps', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[_DEFAULTSTATE_JOINTANGLE, _DEFAULTSTATE_QP, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1312,
  serialized_end=1600,
)


_CONFIG_NAMEPAIR = _descriptor.Descriptor(
  name='NamePair',
  full_name='brax.Config.NamePair',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='first', full_name='brax.Config.NamePair.first', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=b"".decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='second', full_name='brax.Config.NamePair.second', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=b"".decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1995,
  serialized_end=2036,
)

_CONFIG = _descriptor.Descriptor(
  name='Config',
  full_name='brax.Config',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='bodies', full_name='brax.Config.bodies', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='joints', full_name='brax.Config.joints', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='actuators', full_name='brax.Config.actuators', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='elasticity', full_name='brax.Config.elasticity', index=3,
      number=4, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='friction', full_name='brax.Config.friction', index=4,
      number=5, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='gravity', full_name='brax.Config.gravity', index=5,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='velocity_damping', full_name='brax.Config.velocity_damping', index=6,
      number=7, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='angular_damping', full_name='brax.Config.angular_damping', index=7,
      number=8, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='baumgarte_erp', full_name='brax.Config.baumgarte_erp', index=8,
      number=9, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='collide_include', full_name='brax.Config.collide_include', index=9,
      number=10, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='dt', full_name='brax.Config.dt', index=10,
      number=11, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='substeps', full_name='brax.Config.substeps', index=11,
      number=12, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='frozen', full_name='brax.Config.frozen', index=12,
      number=13, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='defaults', full_name='brax.Config.defaults', index=13,
      number=14, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[_CONFIG_NAMEPAIR, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1603,
  serialized_end=2036,
)

_FROZEN.fields_by_name['position'].message_type = _VECTOR3
_FROZEN.fields_by_name['rotation'].message_type = _VECTOR3
_BODY.fields_by_name['colliders'].message_type = _COLLIDER
_BODY.fields_by_name['inertia'].message_type = _VECTOR3
_BODY.fields_by_name['frozen'].message_type = _FROZEN
_COLLIDER_BOX.fields_by_name['halfsize'].message_type = _VECTOR3
_COLLIDER_BOX.containing_type = _COLLIDER
_COLLIDER_PLANE.containing_type = _COLLIDER
_COLLIDER_SPHERE.containing_type = _COLLIDER
_COLLIDER_CAPSULE.containing_type = _COLLIDER
_COLLIDER_HEIGHTMAP.containing_type = _COLLIDER
_COLLIDER.fields_by_name['position'].message_type = _VECTOR3
_COLLIDER.fields_by_name['rotation'].message_type = _VECTOR3
_COLLIDER.fields_by_name['box'].message_type = _COLLIDER_BOX
_COLLIDER.fields_by_name['plane'].message_type = _COLLIDER_PLANE
_COLLIDER.fields_by_name['sphere'].message_type = _COLLIDER_SPHERE
_COLLIDER.fields_by_name['capsule'].message_type = _COLLIDER_CAPSULE
_COLLIDER.fields_by_name['heightMap'].message_type = _COLLIDER_HEIGHTMAP
_COLLIDER.oneofs_by_name['type'].fields.append(
  _COLLIDER.fields_by_name['box'])
_COLLIDER.fields_by_name['box'].containing_oneof = _COLLIDER.oneofs_by_name['type']
_COLLIDER.oneofs_by_name['type'].fields.append(
  _COLLIDER.fields_by_name['plane'])
_COLLIDER.fields_by_name['plane'].containing_oneof = _COLLIDER.oneofs_by_name['type']
_COLLIDER.oneofs_by_name['type'].fields.append(
  _COLLIDER.fields_by_name['sphere'])
_COLLIDER.fields_by_name['sphere'].containing_oneof = _COLLIDER.oneofs_by_name['type']
_COLLIDER.oneofs_by_name['type'].fields.append(
  _COLLIDER.fields_by_name['capsule'])
_COLLIDER.fields_by_name['capsule'].containing_oneof = _COLLIDER.oneofs_by_name['type']
_COLLIDER.oneofs_by_name['type'].fields.append(
  _COLLIDER.fields_by_name['heightMap'])
_COLLIDER.fields_by_name['heightMap'].containing_oneof = _COLLIDER.oneofs_by_name['type']
_JOINT_RANGE.containing_type = _JOINT
_JOINT.fields_by_name['parent_offset'].message_type = _VECTOR3
_JOINT.fields_by_name['child_offset'].message_type = _VECTOR3
_JOINT.fields_by_name['rotation'].message_type = _VECTOR3
_JOINT.fields_by_name['angle_limit'].message_type = _JOINT_RANGE
_JOINT.oneofs_by_name['_limit_strength'].fields.append(
  _JOINT.fields_by_name['limit_strength'])
_JOINT.fields_by_name['limit_strength'].containing_oneof = _JOINT.oneofs_by_name['_limit_strength']
_JOINT.oneofs_by_name['_spring_damping'].fields.append(
  _JOINT.fields_by_name['spring_damping'])
_JOINT.fields_by_name['spring_damping'].containing_oneof = _JOINT.oneofs_by_name['_spring_damping']
_ACTUATOR_TORQUE.containing_type = _ACTUATOR
_ACTUATOR_ANGLE.containing_type = _ACTUATOR
_ACTUATOR.fields_by_name['torque'].message_type = _ACTUATOR_TORQUE
_ACTUATOR.fields_by_name['angle'].message_type = _ACTUATOR_ANGLE
_ACTUATOR.oneofs_by_name['type'].fields.append(
  _ACTUATOR.fields_by_name['torque'])
_ACTUATOR.fields_by_name['torque'].containing_oneof = _ACTUATOR.oneofs_by_name['type']
_ACTUATOR.oneofs_by_name['type'].fields.append(
  _ACTUATOR.fields_by_name['angle'])
_ACTUATOR.fields_by_name['angle'].containing_oneof = _ACTUATOR.oneofs_by_name['type']
_DEFAULTSTATE_JOINTANGLE.fields_by_name['angle'].message_type = _VECTOR3
_DEFAULTSTATE_JOINTANGLE.containing_type = _DEFAULTSTATE
_DEFAULTSTATE_QP.fields_by_name['pos'].message_type = _VECTOR3
_DEFAULTSTATE_QP.fields_by_name['rot'].message_type = _VECTOR3
_DEFAULTSTATE_QP.fields_by_name['vel'].message_type = _VECTOR3
_DEFAULTSTATE_QP.fields_by_name['ang'].message_type = _VECTOR3
_DEFAULTSTATE_QP.containing_type = _DEFAULTSTATE
_DEFAULTSTATE.fields_by_name['angles'].message_type = _DEFAULTSTATE_JOINTANGLE
_DEFAULTSTATE.fields_by_name['qps'].message_type = _DEFAULTSTATE_QP
_CONFIG_NAMEPAIR.containing_type = _CONFIG
_CONFIG.fields_by_name['bodies'].message_type = _BODY
_CONFIG.fields_by_name['joints'].message_type = _JOINT
_CONFIG.fields_by_name['actuators'].message_type = _ACTUATOR
_CONFIG.fields_by_name['gravity'].message_type = _VECTOR3
_CONFIG.fields_by_name['collide_include'].message_type = _CONFIG_NAMEPAIR
_CONFIG.fields_by_name['frozen'].message_type = _FROZEN
_CONFIG.fields_by_name['defaults'].message_type = _DEFAULTSTATE
DESCRIPTOR.message_types_by_name['Vector3'] = _VECTOR3
DESCRIPTOR.message_types_by_name['Frozen'] = _FROZEN
DESCRIPTOR.message_types_by_name['Body'] = _BODY
DESCRIPTOR.message_types_by_name['Collider'] = _COLLIDER
DESCRIPTOR.message_types_by_name['Joint'] = _JOINT
DESCRIPTOR.message_types_by_name['Actuator'] = _ACTUATOR
DESCRIPTOR.message_types_by_name['DefaultState'] = _DEFAULTSTATE
DESCRIPTOR.message_types_by_name['Config'] = _CONFIG
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Vector3 = _reflection.GeneratedProtocolMessageType('Vector3', (_message.Message,), {
  'DESCRIPTOR' : _VECTOR3,
  '__module__' : 'brax.physics.config_pb2'
  # @@protoc_insertion_point(class_scope:brax.Vector3)
  })
_sym_db.RegisterMessage(Vector3)

Frozen = _reflection.GeneratedProtocolMessageType('Frozen', (_message.Message,), {
  'DESCRIPTOR' : _FROZEN,
  '__module__' : 'brax.physics.config_pb2'
  # @@protoc_insertion_point(class_scope:brax.Frozen)
  })
_sym_db.RegisterMessage(Frozen)

Body = _reflection.GeneratedProtocolMessageType('Body', (_message.Message,), {
  'DESCRIPTOR' : _BODY,
  '__module__' : 'brax.physics.config_pb2'
  # @@protoc_insertion_point(class_scope:brax.Body)
  })
_sym_db.RegisterMessage(Body)

Collider = _reflection.GeneratedProtocolMessageType('Collider', (_message.Message,), {

  'Box' : _reflection.GeneratedProtocolMessageType('Box', (_message.Message,), {
    'DESCRIPTOR' : _COLLIDER_BOX,
    '__module__' : 'brax.physics.config_pb2'
    # @@protoc_insertion_point(class_scope:brax.Collider.Box)
    })
  ,

  'Plane' : _reflection.GeneratedProtocolMessageType('Plane', (_message.Message,), {
    'DESCRIPTOR' : _COLLIDER_PLANE,
    '__module__' : 'brax.physics.config_pb2'
    # @@protoc_insertion_point(class_scope:brax.Collider.Plane)
    })
  ,

  'Sphere' : _reflection.GeneratedProtocolMessageType('Sphere', (_message.Message,), {
    'DESCRIPTOR' : _COLLIDER_SPHERE,
    '__module__' : 'brax.physics.config_pb2'
    # @@protoc_insertion_point(class_scope:brax.Collider.Sphere)
    })
  ,

  'Capsule' : _reflection.GeneratedProtocolMessageType('Capsule', (_message.Message,), {
    'DESCRIPTOR' : _COLLIDER_CAPSULE,
    '__module__' : 'brax.physics.config_pb2'
    # @@protoc_insertion_point(class_scope:brax.Collider.Capsule)
    })
  ,

  'HeightMap' : _reflection.GeneratedProtocolMessageType('HeightMap', (_message.Message,), {
    'DESCRIPTOR' : _COLLIDER_HEIGHTMAP,
    '__module__' : 'brax.physics.config_pb2'
    # @@protoc_insertion_point(class_scope:brax.Collider.HeightMap)
    })
  ,
  'DESCRIPTOR' : _COLLIDER,
  '__module__' : 'brax.physics.config_pb2'
  # @@protoc_insertion_point(class_scope:brax.Collider)
  })
_sym_db.RegisterMessage(Collider)
_sym_db.RegisterMessage(Collider.Box)
_sym_db.RegisterMessage(Collider.Plane)
_sym_db.RegisterMessage(Collider.Sphere)
_sym_db.RegisterMessage(Collider.Capsule)
_sym_db.RegisterMessage(Collider.HeightMap)

Joint = _reflection.GeneratedProtocolMessageType('Joint', (_message.Message,), {

  'Range' : _reflection.GeneratedProtocolMessageType('Range', (_message.Message,), {
    'DESCRIPTOR' : _JOINT_RANGE,
    '__module__' : 'brax.physics.config_pb2'
    # @@protoc_insertion_point(class_scope:brax.Joint.Range)
    })
  ,
  'DESCRIPTOR' : _JOINT,
  '__module__' : 'brax.physics.config_pb2'
  # @@protoc_insertion_point(class_scope:brax.Joint)
  })
_sym_db.RegisterMessage(Joint)
_sym_db.RegisterMessage(Joint.Range)

Actuator = _reflection.GeneratedProtocolMessageType('Actuator', (_message.Message,), {

  'Torque' : _reflection.GeneratedProtocolMessageType('Torque', (_message.Message,), {
    'DESCRIPTOR' : _ACTUATOR_TORQUE,
    '__module__' : 'brax.physics.config_pb2'
    # @@protoc_insertion_point(class_scope:brax.Actuator.Torque)
    })
  ,

  'Angle' : _reflection.GeneratedProtocolMessageType('Angle', (_message.Message,), {
    'DESCRIPTOR' : _ACTUATOR_ANGLE,
    '__module__' : 'brax.physics.config_pb2'
    # @@protoc_insertion_point(class_scope:brax.Actuator.Angle)
    })
  ,
  'DESCRIPTOR' : _ACTUATOR,
  '__module__' : 'brax.physics.config_pb2'
  # @@protoc_insertion_point(class_scope:brax.Actuator)
  })
_sym_db.RegisterMessage(Actuator)
_sym_db.RegisterMessage(Actuator.Torque)
_sym_db.RegisterMessage(Actuator.Angle)

DefaultState = _reflection.GeneratedProtocolMessageType('DefaultState', (_message.Message,), {

  'JointAngle' : _reflection.GeneratedProtocolMessageType('JointAngle', (_message.Message,), {
    'DESCRIPTOR' : _DEFAULTSTATE_JOINTANGLE,
    '__module__' : 'brax.physics.config_pb2'
    # @@protoc_insertion_point(class_scope:brax.DefaultState.JointAngle)
    })
  ,

  'QP' : _reflection.GeneratedProtocolMessageType('QP', (_message.Message,), {
    'DESCRIPTOR' : _DEFAULTSTATE_QP,
    '__module__' : 'brax.physics.config_pb2'
    # @@protoc_insertion_point(class_scope:brax.DefaultState.QP)
    })
  ,
  'DESCRIPTOR' : _DEFAULTSTATE,
  '__module__' : 'brax.physics.config_pb2'
  # @@protoc_insertion_point(class_scope:brax.DefaultState)
  })
_sym_db.RegisterMessage(DefaultState)
_sym_db.RegisterMessage(DefaultState.JointAngle)
_sym_db.RegisterMessage(DefaultState.QP)

Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), {

  'NamePair' : _reflection.GeneratedProtocolMessageType('NamePair', (_message.Message,), {
    'DESCRIPTOR' : _CONFIG_NAMEPAIR,
    '__module__' : 'brax.physics.config_pb2'
    # @@protoc_insertion_point(class_scope:brax.Config.NamePair)
    })
  ,
  'DESCRIPTOR' : _CONFIG,
  '__module__' : 'brax.physics.config_pb2'
  # @@protoc_insertion_point(class_scope:brax.Config)
  })
_sym_db.RegisterMessage(Config)
_sym_db.RegisterMessage(Config.NamePair)


# @@protoc_insertion_point(module_scope)
