protected void update() {
    rendering.lighting.direct(
      rendering.port.viewInvert(new Vec3D(0, 0, 1))
    ) ;
    Human selected = null ;
    //
    //  Render the generated humanoid sprites-
    for (Human human : generated) {
      final JointSprite s = (JointSprite) human.sprite() ;
      s.toggleGroup("pistol", true) ;
      s.setAnimation(animName, animProgress) ;
      if (rendering.port.mouseIntersects(s.position, 0.5f, HUD)) {
        selected = human ;
      }
      rendering.addClient(s) ;
    }
    animProgress += 0.04f ;
    //
    //  ...You should also be able to preview portraits here.
    if (currentPortrait != null) {
      currentPortrait.detach() ;
      currentPortrait = null ;
    }
    if (selected != null) {
      Selection.renderPlane(
        rendering, selected.sprite().position, 0.5f,
        Colour.WHITE, Selection.SELECT_CIRCLE
      ) ;
      currentPortrait = selected.portrait(HUD) ;
      currentPortrait.absBound.set(10, 10, 100, 100) ;
      currentPortrait.attachTo(HUD) ;
    }
  }