code: def make_movie(phenotypes, **kwargs):
      
      denom, palette = get_kwargs(phenotypes, kwargs)
  
      # Create figure to do plotting
      fig = plt.figure(figsize=(20, 20))
  
      # Change colors of circles as appropriate for new time step
      def animate(n):
          # print("animating", n)
          phen_grid = slice_3d_grid(phenotypes, n)
          # print(phen_grid)
          grid = color_grid(phen_grid, palette, denom, False)
          plt.tick_params(labelbottom="off", labeltop="off", labelleft="off",
                          labelright="off", bottom="off", top="off", left="off",
                          right="off")
          plt.imshow(grid, interpolation="nearest", aspect=1, zorder=1)
          plt.tight_layout()
  
      # Do actual animation
      anim = matplotlib.animation.FuncAnimation(
          fig, animate,
          frames=len(phenotypes[0][0]), interval=750)
  
      anim.save("movie.mov")
      return anim
docs: Makes an animation overlaying colored circles representing phenotypes over
      an imshow() plot indicating the resources present in each cell. By default,
      color is determined using the palettes in the EnvironmentFile object
      passed as the first parameter. The easiest way to change color palettes
      is to assign new palettes to environment.task_palette and
      environment.resource_palette before calling this function. If either the
      environment or phenotypes grids contain integers greater than 1, you should
      pass a `denom` keyword argument indicating how to normalize them. Using
      differnet denoms for the environment and phenotypes is not currently
      supported (if you need to, you should probably just divide everything by
      the appropraite denoms before passing them to this funciton).
  
      Inputs:
            phenotypes  - a 2d array of numbers or binary strings representing
                          the placement of phenotypes across the environment
  
      kwargs:
            denom - an integer indicating how to normalize numbers in the
                    environment and phenotype grids if neccesary.
      Outputs:
           Returns a matplotlib animation object.
           Saves animation in the file:
              [environment_file_identifier]_phenotype_overlay.mp4