diff --git a/vec3/vec3-tests.ts b/vec3/vec3-tests.ts
new file mode 100644
index 000000000..8196b9d93
--- /dev/null
+++ b/vec3/vec3-tests.ts
@@ -0,0 +1,5 @@
+///
+
+import {Vec3} from "vec3";
+let myVector: Vec3 = new Vec3(10, 10, 10);
+console.log(myVector.toString());
\ No newline at end of file
diff --git a/vec3/vec3.d.ts b/vec3/vec3.d.ts
new file mode 100644
index 000000000..29bac0c56
--- /dev/null
+++ b/vec3/vec3.d.ts
@@ -0,0 +1,34 @@
+// Type definitions for Vec3 Librairy
+// Project: https://www.npmjs.com/package/vec3
+// Definitions by: Xavier Stouder
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module "vec3" {
+ class Vec3 {
+ constructor(x: number, y: number, z: number);
+ constructor(location: number[]);
+ constructor(location: {x: number; y: number; z: number});
+ constructor(locationStr: string);
+
+ set(x: number, y: number, z: number): Vec3;
+ update(other: Vec3): Vec3;
+ floored(): Vec3;
+ floor(): Vec3;
+ offset(dx: number, dy: number, dz: number): Vec3;
+ translate(dx: number, dy: number, dz: number): Vec3;
+ add(other: Vec3): Vec3;
+ substract(other: Vec3): Vec3;
+ plus(other: Vec3): Vec3;
+ minus(other: Vec3): Vec3;
+ scaled(scalar: number): Vec3;
+ abs(): Vec3
+ volume(): number;
+ modulus(): Vec3;
+ distanceTo(other: Vec3): number;
+ equals(other: Vec3): boolean;
+ toString(): string;
+ clone(): Vec3;
+ min(other: Vec3): Vec3;
+ max(other: Vec3): Vec3;
+ }
+}
\ No newline at end of file