<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def render_scene(scene, resolution=(1080, 1080), visible=True, **kwargs):
 """ Render a preview of a scene to a PNG. Parameters scene : trimesh.Scene Geometry to be rendered resolution : (2,) int Resolution in pixels kwargs : ** Passed to SceneViewer Returns --------- render : bytes Image in PNG format """

    window = SceneViewer(scene,
                         start_loop=False,
                         visible=visible,
                         resolution=resolution,
                         **kwargs)

    if visible is None:
        visible = platform.system() != 'Linux'

    # need to run loop twice to display anything
    for i in range(2):
        pyglet.clock.tick()
        window.switch_to()
        window.dispatch_events()
        window.dispatch_event('on_draw')
        window.flip()

    from ..util import BytesIO

    # save the color buffer data to memory
    file_obj = BytesIO()
    window.save_image(file_obj)
    file_obj.seek(0)
    render = file_obj.read()
    window.close()

    return render