# Text to STL > A text to STL generator is a tool that extrudes typed letters from a font's outlines into a 3D-printable mesh. Kenerate's free generator builds keychains and name plates in your browser: pick a font, set the sizes, add a plate or ring-hole keychain and download STL or 3MF. For two colours, swap filament at the plate height. URL: https://kenerateai.com/text-to-stl Publisher: Kenerate AI (https://kenerateai.com) Last updated: 2026-10-01 ## Key facts - Price: Free, no account - Bases: Keychain (tab with ring hole) or plate - Defaults: 14 mm letters · 2 mm plate · 2 mm raised letters · 5 mm hole · 4 mm margin - Fonts: 18 open-licence fonts + your TTF/OTF - Output: STL, 3MF, OBJ, GLB - Privacy: Built in your browser — no upload - One-piece keychains: Letters sit on a plate, so separate parts (like the dot on an i) stay attached. - Two colours, one nozzle: Letters start exactly at the plate's top, so a single filament change there gives coloured letters on a contrasting base. - Ring hole to fit: Choose a 3–10 mm hole; 5 mm suits most split rings and lanyard clips. - Name plates: Switch to Plate for desk, door and locker signs with rounded corners. - Letters: Your text is outlined in the chosen font at the letter size you set. - Plate: A rounded plate is sized around the text plus your margin. - Tab and hole: For keychains, a tab with a round hole is added on the left. - Stack: Letters are extruded on top of the plate and the model is exported. - STL (Stereolithography): Triangle mesh (binary or ASCII); by 3D Systems, 1987. Holds: Triangle surfaces, Facet normals. Lacks: Colour and textures, Units, Materials. Best for: 3D printing — every slicer opens it. Opens in: Cura, PrusaSlicer, Bambu Studio, OrcaSlicer, Blender. - 3MF (3D Manufacturing Format): ZIP package with XML; by 3MF Consortium, 2015. Holds: Meshes with units (millimetres), Colours and materials, Several objects and build plates. Lacks: Animation. Best for: Modern 3D printing and multi-colour prints. Opens in: Bambu Studio, PrusaSlicer, OrcaSlicer, Cura, Windows 3D Builder. ## Steps 1. Type a name — Short names work best on keychains. 2. Choose font and size — Bold or connected script fonts; letters of 12 mm or more. 3. Adjust the base — Plate thickness, margin, corner radius and ring hole. 4. Download and print — Print flat; change filament at the plate height for two colours. ## In depth ### Small text, big rules A 0.4 mm nozzle can't print walls under about 0.45 mm; two perimeters, about 0.9 mm, is a safer minimum [11]. At keychain sizes that rules out hairline fonts — choose bold or rounded faces. ### Two colours on a single-nozzle printer Because the letters start exactly where the plate ends, one filament change at that layer prints the plate in one colour and the letters in another. 3MF keeps the parts as separate meshes if your slicer assigns colours per object. ### Strength The ring tab carries all the load. Keep at least 2 mm of plate around the hole and print with 3 or more walls. References: [1] Wikipedia — STL (file format): https://en.wikipedia.org/wiki/STL_(file_format) [2] Wikipedia — Wavefront .obj file: https://en.wikipedia.org/wiki/Wavefront_.obj_file [3] Wikipedia — FBX: https://en.wikipedia.org/wiki/FBX [4] Khronos Group — glTF: https://www.khronos.org/gltf/ [5] 3MF Consortium — 3MF specification: https://3mf.io/specification/ [6] Wikipedia — Universal Scene Description (USD / USDZ): https://en.wikipedia.org/wiki/Universal_Scene_Description [7] Wikipedia — PLY (file format): https://en.wikipedia.org/wiki/PLY_(file_format) [8] Khronos Group — glTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html [9] Apple — AR Quick Look: https://developer.apple.com/augmented-reality/quick-look/ [10] three.js — documentation: https://threejs.org/docs/ [11] Prusa Knowledge Base — Modeling with 3D printing in mind: https://help.prusa3d.com/article/modeling-with-3d-printing-in-mind_164135 [12] Prusa Blog — lithophanes and filament transparency: https://blog.prusa3d.com/lets-play-with-filament-transparency-how-to-make-amazing-lifelike-color-photos-with-just-a-simple-color-change_104338/ [13] Polymers (2024) 16(20):2862 — FFF parameters and translucency of PLA: https://doi.org/10.3390/polym16202862 [14] Wikipedia — Lithophane: https://en.wikipedia.org/wiki/Lithophane [15] W3C — CSS Values and Units Level 3 (absolute lengths): https://www.w3.org/TR/css-values-3/ [16] Adobe Substance 3D — OpenGL vs DirectX normal maps: https://experienceleague.adobe.com/en/docs/substance-3d/bakers/common-questions/what-is-the-difference-between-the-opengl-and-directx-normal-format [17] Blender Manual — Normal Map node: https://docs.blender.org/manual/en/latest/render/shader_nodes/displacement/normal_map.html [18] Wikipedia — Normal mapping: https://en.wikipedia.org/wiki/Normal_mapping [19] SIL Open Font License: https://openfontlicense.org/ ## FAQ Q: What size should a name keychain be? A: Letters about 12–16 mm tall, a 2 mm plate and 1.5–2 mm raised letters make a sturdy keychain about 50–80 mm long for most names. Q: What hole size for a keyring? A: 5 mm suits most split rings and lanyard clips; use 3–4 mm for thin chains and 6–8 mm for thick rings. Q: How do I print it in two colours? A: Add a filament change (or colour change) at the layer where the letters begin — the top of the plate. Your slicer shows this height. Q: Which fonts work best? A: Bold sans (Archivo Black, Russo One) or connected scripts (Pacifico, Lobster). Avoid thin scripts at small sizes. Q: Why are my letters too thin to print? A: Strokes below about 0.9 mm are unreliable on a 0.4 mm nozzle. Make the letters bigger or choose a bolder font. Q: Can I make engraved text? A: This tool makes raised text. Engraving needs subtracting the text from a plate in your slicer or CAD. Q: Is anything uploaded? A: No. It's all built in your browser. ## Related pages - AI 3D Model Generator: https://kenerateai.com/ai-3d-model-generator - Image to 3D: https://kenerateai.com/image-to-3d-converter - AI STL Generator: https://kenerateai.com/ai-3d-printing-model-generator - Text to 3D: https://kenerateai.com/text-to-3d-generator ## Sources - Wikipedia — STL (file format): https://en.wikipedia.org/wiki/STL_(file_format) - Wikipedia — Wavefront .obj file: https://en.wikipedia.org/wiki/Wavefront_.obj_file - Wikipedia — FBX: https://en.wikipedia.org/wiki/FBX - Khronos Group — glTF: https://www.khronos.org/gltf/ - 3MF Consortium — 3MF specification: https://3mf.io/specification/ - Wikipedia — Universal Scene Description (USD / USDZ): https://en.wikipedia.org/wiki/Universal_Scene_Description - Wikipedia — PLY (file format): https://en.wikipedia.org/wiki/PLY_(file_format) - Khronos Group — glTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html - Apple — AR Quick Look: https://developer.apple.com/augmented-reality/quick-look/ - three.js — documentation: https://threejs.org/docs/ - Prusa Knowledge Base — Modeling with 3D printing in mind: https://help.prusa3d.com/article/modeling-with-3d-printing-in-mind_164135 - Prusa Blog — lithophanes and filament transparency: https://blog.prusa3d.com/lets-play-with-filament-transparency-how-to-make-amazing-lifelike-color-photos-with-just-a-simple-color-change_104338/ - Polymers (2024) 16(20):2862 — FFF parameters and translucency of PLA: https://doi.org/10.3390/polym16202862 - Wikipedia — Lithophane: https://en.wikipedia.org/wiki/Lithophane - W3C — CSS Values and Units Level 3 (absolute lengths): https://www.w3.org/TR/css-values-3/ - Adobe Substance 3D — OpenGL vs DirectX normal maps: https://experienceleague.adobe.com/en/docs/substance-3d/bakers/common-questions/what-is-the-difference-between-the-opengl-and-directx-normal-format - Blender Manual — Normal Map node: https://docs.blender.org/manual/en/latest/render/shader_nodes/displacement/normal_map.html - Wikipedia — Normal mapping: https://en.wikipedia.org/wiki/Normal_mapping - SIL Open Font License: https://openfontlicense.org/