Hiya,

Well, start by defining your model;

```
// given an object camera { position [Cartesian3], heading [degrees], pitch [degrees], roll [degrees] }
frustrum = {
model: {
uri: '/assets/frustrum_model.glb',
minimumPixelSize: 25,
maximumScale: 100
},
orientation: Cesium.Transforms.headingPitchRollQuaternion( camera.position, new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(camera.heading - 90), Cesium.Math.toRadians(camera.pitch), Cesium.Math.toRadians(camera.roll)))
}
viewer.entities.add( frustrum );
```

Thereâ€™s plenty of parameters in the model to play with scale and constraints, the doco have more of them. If you want to have the cone different from the camera itself you might split it into two models, and try scaling only the cone part to whatever parameters youâ€™ve got. But yeah, thatâ€™s the basics. You may have to tweak the â€ś- 90â€ť on heading depending on how the model is drawn to some local coordinate system, you might have to flip it, turn it, and so on.

Iâ€™d start there. Try uploading your frustrum model into Cesium Ion, and create a Sandcastle with your code so we all can chip in and help as we go along.

Cheers,

Alex