def METHOD_NAME(self):
    self.worldNP = render.attach_new_node('World')
    # World
    self.debugNP = self.worldNP.attach_new_node(BulletDebugNode('Debug'))
    self.debugNP.show()
    self.debugNP.node().show_wireframe(True)
    self.debugNP.node().show_constraints(True)
    self.debugNP.node().show_bounding_boxes(False)
    self.debugNP.node().show_normals(False)
    self.world = BulletWorld()
    self.world.set_gravity((0, 0, -9.81))
    self.world.set_debug_node(self.debugNP.node())
    # Box A
    shape = BulletBoxShape((0.5, 0.5, 0.5))
    bodyA = BulletRigidBodyNode('Box A')
    bodyNP = self.worldNP.attach_new_node(bodyA)
    bodyNP.node().add_shape(shape)
    bodyNP.set_collide_mask(BitMask32.all_on())
    bodyNP.set_pos(-3, 0, 4)
    visNP = loader.load_model('models/box.egg')
    visNP.clear_model_nodes()
    visNP.reparent_to(bodyNP)
    self.world.attach(bodyA)
    # Box B
    shape = BulletBoxShape((0.5, 0.5, 0.5))
    bodyB = BulletRigidBodyNode('Box B')
    bodyNP = self.worldNP.attach_new_node(bodyB)
    bodyNP.node().add_shape(shape)
    bodyNP.node().set_mass(1.0)
    bodyNP.node().set_deactivation_enabled(False)
    bodyNP.set_collide_mask(BitMask32.all_on())
    bodyNP.set_pos(0, 0, 0)
    visNP = loader.load_model('models/box.egg')
    visNP.clear_model_nodes()
    visNP.reparent_to(bodyNP)
    self.world.attach(bodyB)
    # Slider
    frameA = TransformState.make_pos_hpr((2, 0, 0), (0, 0, 45))
    frameB = TransformState.make_pos_hpr((0, -3, 0), (0, 0, 0))
    slider = BulletSliderConstraint(bodyA, bodyB, frameA, frameB, True)
    slider.set_debug_draw_size(2.0)
    slider.set_lower_linear_limit(0)
    slider.set_upper_linear_limit(6)
    slider.set_lower_angular_limit(-60)
    slider.set_upper_angular_limit(60)
    self.world.attach(slider)