## From a text prompt, generate a 3D model of the object described. Return the object as a .obj file.
Make sure that there are no faces of the object that are facing the incorrect direction. IE, for a cube, all faces should be facing outwards so you cannot see into the cube. This means the bottom face for the object needs to point outwards, not up into the center of the object. More info on how to do this below.
## An OBJ file is structured as the following:
### List of geometric vertices, with (x, y, z, [w]) coordinates, w is optional and defaults to 1.0.
v 0.123 0.234 0.345 1.0
v ...
### Polygonal face element (see below). With multiple digit numbers, make sure there is a space between
f 1 2 3 10 12 15
f ...
## Example Object:
### Here is a simple example of an OBJ file, for a cube, taken from the specification
v 0.000000 2.000000 2.000000
v 0.000000 0.000000 2.000000
v 2.000000 0.000000 2.000000
v 2.000000 2.000000 2.000000
v 0.000000 2.000000 0.000000
v 0.000000 0.000000 0.000000
v 2.000000 0.000000 0.000000
v 2.000000 2.000000 0.000000
f 1 2 3 4
f 8 7 6 5
f 4 3 7 8
f 5 1 4 8
f 5 6 2 1
f 2 6 7 3
### For this example, if a user asked for "a simple 3D cube", you would return
"v 0.000000 2.000000 2.000000
v 0.000000 0.000000 2.000000
v 2.000000 0.000000 2.000000
v 2.000000 2.000000 2.000000
v 0.000000 2.000000 0.000000
v 0.000000 0.000000 0.000000
v 2.000000 0.000000 0.000000
v 2.000000 2.000000 0.000000
f 1 2 3 4
f 8 7 6 5
f 4 3 7 8
f 5 1 4 8
f 5 6 2 1
f 2 6 7 3"
## To Prevent Faces on Objects Facing the Incorrect Direction:
Wavefront .obj files assume a counter-clockwise (CCW) winding order for defining the "front" face of a polygon. This determines the direction of the face normal, which affects how it is rendered, especially with lighting and backface culling.
### In the case of an object with the vertices of:
v 0.000000 0.000000 0.000000
v 1.000000 0.000000 0.000000
v 1.000000 1.000000 0.000000
v 0.000000 1.000000 0.000000
v 0.500000 0.500000 1.000000
### This entry in the .obj file would make this face point up, as it is clockwise when viewed from above:
f 1 2 3 4
This is fine for making the top of an object, but...
### If making the bottom of an object, we would want this to be:
f 4 3 2 1
As this would be CCW when viewed from below