# Source code for moderngl_window.geometry.bbox

    import numpy

    import moderngl
    from moderngl_window.opengl.vao import VAO
    from moderngl_window.geometry import AttributeNames

    def bbox(size=(1.0, 1.0, 1.0), name=None, attr_names=AttributeNames):
        """
        Generates a bounding box with (0.0, 0.0, 0.0) as the center.
        This is simply a box with ``LINE_STRIP`` as draw mode.

        Keyword Args:
            size (tuple): x, y, z size of the box
            name (str): Optional name for the VAO
            attr_names (AttributeNames): Attribute names
        Returns:
            A :py:class:`moderngl_window.opengl.vao.VAO` instance
        """
        width, height, depth = size[0] / 2.0, size[1] / 2.0, size[2] / 2.0
        # fmt: off
        pos = numpy.array([
            width, -height, depth,
            width, height, depth,
            -width, -height, depth,
            width, height, depth,
            -width, height, depth,
            -width, -height, depth,
            width, -height, -depth,
            width, height, -depth,
            width, -height, depth,
            width, height, -depth,
            width, height, depth,
            width, -height, depth,
            width, -height, -depth,
            width, -height, depth,
            -width, -height, depth,
            width, -height, -depth,
            -width, -height, depth,
            -width, -height, -depth,
            -width, -height, depth,
            -width, height, depth,
            -width, height, -depth,
            -width, -height, depth,
            -width, height, -depth,
            -width, -height, -depth,
            width, height, -depth,
            width, -height, -depth,
            -width, -height, -depth,
            width, height, -depth,
            -width, -height, -depth,
            -width, height, -depth,
            width, height, -depth,
            -width, height, -depth,
            width, height, depth,
            -width, height, -depth,
            -width, height, depth,
            width, height, depth,
        ], dtype=numpy.float32)
        # fmt: on

        vao = VAO(name or "geometry:cube", mode=moderngl.LINE_STRIP)
        vao.buffer(pos, "3f", [attr_names.POSITION])

        return vao