Skip to main content
Built-in Elements

<assembly.device />

Import the assembly namespace from @tscircuit/core to describe a device containing boards, displays, and mechanical parts.

import { assembly } from "@tscircuit/core"

export default () => (
<assembly.device name="product">
<board name="B1" width="40mm" height="30mm" />
<assembly.subassembly name="housing" cadModel={{ glbUrl: "/housing.glb" }} />
</assembly.device>
)

Replace /housing.glb with your own model URL, accessible to the viewer. Relative asset URLs are resolved using the platform's projectBaseUrl.

assembly.device is a transparent container: it does not create geometry, PCB pads, or schematic symbols. Boards and other children keep their own rendering behavior. Devices can be nested; assembly.screen attachment selectors are scoped to their nearest device.

PropertyDescription
nameOptional device name.
childrenBoards, subassemblies, screens, or nested devices.

Assembly elements​

ElementPurpose
assembly.subassemblyGroup imported mechanical models and CAD children.
assembly.cadassemblyAlias for assembly.subassembly.
assembly.screenPlace a display relative to a connector or another assembly.

See Mounting 3D models to a board for a board with mounting holes and imported screws.