# cylinder3D [Built-ins](README.md) Canonical ID: `scene3d.cylinder`. Nederlands: `cilinder3D`. A **cylinder** is a shape like a can. **Capped** means its round top and bottom are closed. Its **axis** is the line through the centers of those ends. Its **radius** is half the width across a round end. **Facets** are the small flat faces used to draw it; **tangent contact** means two surfaces just touch. Creates a capped upright cylinder centered at its position with its axis along +Y. Height is the full height. Yaw rotates facets and texture around that axis without changing the analytic (calculated from the mathematical shape) shape. Rendering uses 12 sides, while collision and rays use exact circular sides and cap disks, including tangent contact. New shapes start at (0,0,0), yaw (the left-or-right angle) 0, color #f59e0b, solid true, texture none, and scale 1. Reusing a name replaces every property while preserving insertion order. A world contains at most 256 objects. Creation alone does not draw. See [3D words and camera rules](../guides/scene3d.md). ## Signature ```text cylinder3D(name, radius, height) ``` ## Arguments | Parameter | Type | Requirement | |---|---|---| | `name` | Text | Case-sensitive, nonblank object name; at most 64 [UTF-8](../concepts/utf-8.md) bytes. | | `radius` | Number | Finite, greater than 0 and at most 1,000. | | `height` | Number | Finite, greater than 0 and at most 1,000. | ## Return value `None`. ## Example ```pliro # language: en clear3D("#16213e") cylinder3D("shape", 0.6, 2) color3D("shape", "orange") texture3D("shape", "checker", 2) camera3D(3, 2, 5) lookAt3D(0, 0, 0) draw3D() ``` A textured primitive seen from an angled camera. ## Notes and common mistakes Use the function name for your source language. Its [canonical ID](../concepts/canonical-identity.md) is a shared documentation label; you do not type that ID as a call. Giving your own variable or function the same name can hide the built-in. Supply the documented [arguments](../concepts/parameters-and-arguments.md) and value types. Pliro reports mismatches when checking can detect them, or when the call runs. A **host** is the app or environment running your program. To see a drawing, it needs a **renderer**, the part that draws on screen. The [command-line](../concepts/command-line.md) command `pliro run` shows text but does not draw these graphics. The [host support table](../guides/hosts.md) explains which effects work in the IDE, browser, native app, and phone preview. A native build reports an unsupported capability instead of leaving it out. In 3D, +Y points up. **Yaw** is the left-or-right angle; at zero the camera faces -Z. The world holds at most 256 objects. Changes appear when you call `draw3D`. An invalid call leaves the world unchanged. Editing requires an existing object name; creating objects and removing an absent name are exceptions. Use the [portable color names or hex codes](../guides/colors.md); transparent colors are unavailable here. Version 1 of the phone preview's communication format does not carry 3D scenes. See the [3D guide](../guides/scene3d.md) for the coordinate rules. ## Related entries [clear3D](clear3D.md) · [box3D](box3D.md) · [sphere3D](sphere3D.md) · [position3D](position3D.md) · [turn3D](turn3D.md) · [Programming guides](../guides/scene3d.md) · [Host support](../guides/hosts.md) · [Calls and arguments](../syntax/calls.md)