diff --git a/components/src/lens.js b/components/src/lens.js
new file mode 100644
index 0000000000000000000000000000000000000000..ce4b9043101e75f763bdf9764974020cf27f99f6
--- /dev/null
+++ b/components/src/lens.js
@@ -0,0 +1,44 @@
+	import * as THREE from 'three';
+
+	// lens
+	export function lens(param) {
+		const lensContiner = new THREE.Object3D();
+		const lensObject = new THREE.Object3D();
+		
+		//cylinder mid
+		const cylgeometry = new THREE.CylinderGeometry(65, 65, 30, 20);
+		const cylmaterial = new THREE.MeshLambertMaterial({color: 0xc7c7c7});
+		const cylmesh = new THREE.Mesh(cylgeometry, cylmaterial);
+		cylmesh.rotateX(Math.PI * 1);
+		cylmesh.rotateY(Math.PI * 1.0);
+		cylmesh.rotateZ(Math.PI * 1.5);
+		cylmesh.position.set(0, 0 , 0);			
+		lensObject.add(cylmesh);			
+		
+		//cylinder center
+		const cyl2geometry = new THREE.CylinderGeometry(45, 45, 31, 20);
+		const cyl2material = new THREE.MeshLambertMaterial({color: 0x737373});
+		const cyl2mesh = new THREE.Mesh(cyl2geometry, cyl2material);
+		cyl2mesh.rotateX(Math.PI * 1);
+		cyl2mesh.rotateY(Math.PI * 1.0);
+		cyl2mesh.rotateZ(Math.PI * 1.5);
+		cyl2mesh.position.set(0, 0 , 0);			
+		lensObject.add(cyl2mesh);			
+		
+		// base1
+		const basegeometry = new THREE.BoxGeometry(29, 160, 60 );
+		const basemesh = new THREE.Mesh(basegeometry, cylmaterial);
+		basemesh.position.set(0, -40, 0);
+		lensObject.add(basemesh);		
+		
+			
+		lensObject.scale.setX(1);
+		lensObject.scale.setY(1);
+		lensObject.scale.setZ(1);
+		lensObject.position.set(0, 0, 0);
+		lensContiner.add(lensObject);
+		lensContiner.rotateY(Math.PI * -1);		
+		
+		
+		return lensContiner;
+	}