Add your XYZ file
Drop one or more .xyz files onto the converter above, or browse for them. They load into browser memory only — nothing is uploaded, so there is no size-based pricing and no server queue.
Converting a .xyz mesh to .gltf rewrites the same triangles for a different toolchain. Free, private, and validated — the file never leaves your browser.
Batch files can each use a different output. Nothing uploads for local conversions.
Working inputs include camera RAW, browser-local audio/video, PDF, CBZ/CBR comics, office documents, ebooks, markup, 3D models, structured text, images, and archives.Converting a .xyz mesh to .gltf rewrites the same triangles for a different toolchain. An .xyz file is the least structured 3D format in use: lines of numbers, three columns for a point cloud. Confusingly, the same extension also names a chemistry format — an atom count, a comment line, then one line per atom starting with an element symbol — so a reader has to decide which it is holding from the shape of the content.
A .gltf file is the JSON form of Khronos glTF 2.0: it describes nodes, meshes, accessors, and buffer references in text, often pairing with external .bin buffers or embedding them as data: URIs. It is the editable, inspectable sibling of binary .glb. For this route the practical draw is human-readable scene description and same data model as GLB, so round-trips are straightforward — balanced against external buffer URIs make a lone .gltf file incomplete, which is worth knowing before you commit a large batch.
The practical trigger for this conversion is usually a mismatch: with .xyz, two unrelated formats share the extension, which routinely confuses tools and people. Switching to .gltf buys you human-readable scene description, which is why it is the better fit for inspecting or hand-editing mesh package structure. Because the conversion runs locally, trying it costs nothing but a few seconds of compute on your own machine.
| Aspect | XYZ coordinate data (.xyz) | glTF mesh (.gltf) |
|---|---|---|
| Format type | Lossless — every pixel or sample is preserved exactly | Vector — resolution-independent geometry instead of pixels |
| How it stores data | point-cloud form: one point per line, whitespace- or comma-separated, sometimes with extra columns for colour or intensity that readers must ignore | uTF-8 JSON with required asset.version 2.0 and optional scenes, nodes, meshes, accessors, bufferViews, and buffers |
| Strongest at | surveying and LiDAR exports where the receiving tool wants plain coordinates | inspecting or hand-editing mesh package structure |
| Weak spot | two unrelated formats share the extension, which routinely confuses tools and people | external buffer URIs make a lone .gltf file incomplete |
| Metadata | the chemical form's comment line and element symbols are read but cannot be represented in a point-cloud target | copyright and generator strings sit under asset; application-specific data is commonly stored in extras |
Drop one or more .xyz files onto the converter above, or browse for them. They load into browser memory only — nothing is uploaded, so there is no size-based pricing and no server queue.
Select .gltf in the output menu next to each file. The menu only offers targets this engine can genuinely produce, so if GLTF is selectable, the route is real and validated.
Press Convert. The mesh is parsed, retriangulated where needed, and rewritten locally with full validation.
Each result is signature-checked before the download unlocks, so a failed encode can never masquerade as a valid GLTF file. Outputs keep the original filename with the .gltf extension.
Since xyz is lossless-oriented and gltf is vector-oriented, the conversion preserves the source content exactly as stored; no additional compression pass is applied beyond what .gltf itself requires.
Yes — the .xyz file is processed inside your browser tab and never uploaded. The mesh is parsed, retriangulated where needed, and rewritten locally with full validation. Close the tab and the file is gone from memory.
The same ecosystem that reads .glb generally reads .gltf, provided referenced buffers resolve. Browser viewers, Blender, and engine importers expect either embedded data URIs or co-located .bin files.
It depends on the content: uTF-8 JSON with required asset.version 2.0 and optional scenes, nodes, meshes, accessors, bufferViews, and buffers. Convert one representative file first and compare before batch-processing a large set.
In .xyz, the chemical form's comment line and element symbols are read but cannot be represented in a point-cloud target. Re-encoding through the browser pipeline does not carry embedded metadata into the output, which doubles as a privacy scrub — check the exported file if you specifically need tags preserved.