Projection
project() takes 3D geometry (faces, edges) and projects it onto your current sketch plane. This is useful for creating features that follow the shape of existing geometry.
Projecting a face
import { sketch, extrude, project, offset } from 'fluidcad/core';
import { rect } from 'fluidcad/core';
sketch("xy", () => {
rect(100, 60).center().radius(8)
})
const e = extrude(30)
sketch(e.endFaces(), () => {
project(e.endFaces())
offset(-5, true)
})

This projects the outline of the top face onto the sketch. Combined with offset(), it's a common way to create shell-like features or inset pockets that match an existing profile.
Projecting edges
You can also project specific edges:
sketch(e.endFaces(), () => {
project(e.endEdges()) // project just the edges
})
Multiple sources
Pass multiple objects to project them all at once:
sketch("xy", () => {
project(face1, face2, edge1)
})