{
  "slug": "mesh-convert",
  "name": "gizza-ai/mesh-convert",
  "version": "0.1.0",
  "title": "OBJ to STL Converter — convert Wavefront OBJ and STL meshes — gizza.ai",
  "description": "Convert pasted OBJ or ASCII STL meshes to OBJ, ASCII STL, or binary STL data URLs. Supports scaling, Y-up/Z-up axis swaps, and triangulation.",
  "tags": [
    "obj to stl",
    "stl to obj",
    "mesh converter",
    "3d model",
    "wavefront obj",
    "ascii stl",
    "binary stl",
    "3d printing"
  ],
  "category": "utilities",
  "urls": {
    "page": "https://gizza.ai/tools/mesh-convert/",
    "markdown": "https://gizza.ai/tools/mesh-convert/index.md",
    "descriptor": "https://gizza.ai/tools/mesh-convert/tool.json",
    "deep_link_example": "https://gizza.ai/tools/mesh-convert/?mesh=v%200%200%200%0Av%201%200%200%0Av%200%201%200%0Af%201%202%203&to=stl&stl_encoding=ascii&scale=1&axis=keep&name=mesh"
  },
  "cli": "gizza tool mesh-convert \"v 0 0 0\nv 1 0 0\nv 0 1 0\nf 1 2 3\"",
  "tool": {
    "description": "Convert 3D meshes between Wavefront OBJ and STL in both directions. The input format is auto-detected from the pasted text (OBJ v/f lines, or ASCII STL solid/facet/vertex). Set to=stl (default) or to=obj to choose the output; stl_encoding=ascii (default) writes readable STL text while stl_encoding=binary returns a compact binary STL as a data:model/stl;base64 URL you can save. Optional scale multiplies every vertex (e.g. 0.001 mm->m), and axis reorients the coordinate frame between graphics Y-up and 3D-print/CAD Z-up. OBJ polygonal faces are fan-triangulated, shared vertices are deduplicated on OBJ output, and STL facet normals are recomputed per face from the geometry. Materials, UVs, textures and vertex colors are not carried over — STL stores only raw triangles. Binary STL input cannot be pasted as text; re-export it as ASCII STL first. Runs fully locally, no network access.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "axis": {
          "default": "keep",
          "description": "Coordinate-frame reorientation. 'keep' (default) leaves axes as-is; 'y-up-to-z-up' rotates a graphics Y-up model to 3D-print/CAD Z-up; 'z-up-to-y-up' does the reverse.",
          "enum": [
            "keep",
            "y-up-to-z-up",
            "z-up-to-y-up"
          ],
          "type": "string"
        },
        "mesh": {
          "description": "The 3D mesh to convert, as pasted text: Wavefront OBJ or ASCII STL. The input format is auto-detected (STL if it starts with 'solid' and contains 'facet'; OBJ if it has v/f lines). Binary STL cannot be pasted as text — re-export it as ASCII STL first.",
          "type": "string"
        },
        "name": {
          "default": "mesh",
          "description": "Name written into the output: the STL 'solid' name / binary header label, or the OBJ 'o' object line. Default 'mesh'.",
          "type": "string"
        },
        "scale": {
          "default": 1.0,
          "description": "Uniform scale factor applied to every vertex (default 1.0 = unchanged). Use e.g. 0.001 to convert millimetres to metres, or 25.4 for inches to millimetres.",
          "type": "number"
        },
        "stl_encoding": {
          "default": "ascii",
          "description": "STL byte encoding when to=stl (ignored for to=obj). 'ascii' (default) returns human-readable STL text; 'binary' returns a compact binary STL as a data:model/stl;base64 URL you can save as a .stl file.",
          "enum": [
            "ascii",
            "binary"
          ],
          "type": "string"
        },
        "to": {
          "default": "stl",
          "description": "Target format. 'stl' (default) writes STL from OBJ or STL input; 'obj' writes Wavefront OBJ (vertices deduplicated, faces as triangles). OBJ materials/UVs and STL facet normals are not carried over — STL stores raw triangles and OBJ normals are recomputed per face on STL output.",
          "enum": [
            "stl",
            "obj"
          ],
          "type": "string"
        }
      },
      "required": [
        "mesh"
      ],
      "type": "object"
    }
  }
}