# how to create a tetrahedron by using Cesium.Geometry

I read the tutorial , but there is an error!
var viewer = new Cesium.Viewer('cesiumContainer');
var scene = viewer.scene;
var ellipsoid = viewer.scene.globe.ellipsoid;

var negativeRootTwoOverThree = -Math.sqrt(2.0) / 3.0;
var negativeOneThird = -1.0 / 3.0;
var rootSixOverThree = Math.sqrt(6.0) / 3.0;

var positions = new Float64Array(4 * 3);

// position 0
positions[0] = 0.0;
positions[1] = 0.0;
positions[2] = 1.0;

// position 1
positions[3] = 0.0;
positions[4] = (2.0 * Math.sqrt(2.0)) / 3.0;
positions[5] = negativeOneThird;

// position 2
positions[6] = -rootSixOverThree;
positions[7] = negativeRootTwoOverThree;
positions[8] = negativeOneThird;

// position 3
positions[9] = rootSixOverThree;
positions[10] = negativeRootTwoOverThree;
positions[11] = negativeOneThird;

var attributes = new Cesium.GeometryAttributes({
position: new Cesium.GeometryAttribute({
componentDatatype: Cesium.ComponentDatatype.DOUBLE,
componentsPerAttribute: 3,
values: positions
})
});

var indices = new Uint16Array(4 * 3);

// back triangle
indices[0] = 0;
indices[1] = 1;
indices[2] = 2;

// left triangle
indices[3] = 0;
indices[4] = 2;
indices[5] = 3;

// right triangle
indices[6] = 0;
indices[7] = 3;
indices[8] = 1;

// bottom triangle
indices[9] = 2;
indices[10] = 1;
indices[11] = 3;
var c1 = new Cesium.Matrix4();
var c2 = new Cesium.Matrix4();

var modelMatrix = Cesium.Matrix4.multiplyByUniformScale(
Cesium.Matrix4.multiplyByTranslation(
Cesium.Transforms.eastNorthUpToFixedFrame(ellipsoid.cartographicToCartesian(
Cesium.Cartographic.fromDegrees(-100.0, 40.0))),
new Cesium.Cartesian3(0, 0, 20000.0),c1),
50000.0,c2);

var instance = new Cesium.GeometryInstance({
geometry: new Cesium.Geometry({
attributes: attributes,
indices: indices,
primitiveType: Cesium.PrimitiveType.TRIANGLES
}),
modelMatrix: modelMatrix ,
attributes: {
color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.WHITE)
}
});

geometryInstances: [instance],
appearance: new Cesium.Appearance({
material:Cesium.Material.fromType("Color")
})
}));

throw an error :
An error occurred while rendering. Rendering has stopped.
TypeError: Cannot read property 'center' of undefined
TypeError: Cannot read property 'center' of undefined
at q (http://localhost:63342/nodePricatice/Build/Cesium/Cesium.js:443:23350)
at N.update (http://localhost:63342/nodePricatice/Build/Cesium/Cesium.js:443:30709)
at a.update (http://localhost:63342/nodePricatice/Build/Cesium/Cesium.js:467:9294)
at Ue (http://localhost:63342/nodePricatice/Build/Cesium/Cesium.js:470:16409)
at Ve (http://localhost:63342/nodePricatice/Build/Cesium/Cesium.js:470:15333)
at Fe (http://localhost:63342/nodePricatice/Build/Cesium/Cesium.js:470:13293)

how can I deal with this problem?

Hello,

Sorry, that tutorial was never published and the code samples are out of date. The geometry needs a bounding sphere and I think the appearance is invalid.

See the box geometry code for how to create a geometry: https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Source/Core/BoxGeometry.js#L838

And see this demo for creating a primitive with that geometry: https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Apps/Sandcastle/gallery/development/Box.html#L59-L64

Best,

Hannah