diff --git a/content/_index.md b/content/_index.md
index 6955aeb..8d57766 100644
--- a/content/_index.md
+++ b/content/_index.md
@@ -2,9 +2,9 @@
template = "index.html"
title = "CJ Satnarine"
+++
- :construction: Don't mind the mess, the site's still under construction and is undergoing a lot of changes. A lot of projects are missing and will be added soon. :construction:
+:construction: Don't mind the mess, the site's still under construction and is undergoing a lot of changes. A lot of projects are missing and will be added soon. :construction:
-Hey! My name is CJ, and welcome to my little space on the internet. I just share whatever I feel like here. I'm into a lot of things, from 3D animation and code to history and language. You can find out more in my [about me](@/about_me/_index.md).
+Hey! My name is CJ, and welcome to my little space on the internet. I just share whatever I feel like here. I'm into a lot of things, from 3D animation and code to history and language.
Alright, enjoy looking around. Feel free to [reach out to me](@/contact/_index.md).
diff --git a/content/about_me/_index.md b/content/about_me/_index.md
index b865367..d812440 100644
--- a/content/about_me/_index.md
+++ b/content/about_me/_index.md
@@ -3,18 +3,18 @@ template = "index.html"
title = "About Me"
+++
-Hey, I'm CJ! I'm an aspiring graphics programmer/techincal artist/game developer from Waterloo, Ontario, Canada. I like coding and art and animation and walking and computers and languages and chasing my cat in the dark and reading and music. I haven't drank any caffeined beverages since 2022.
+Hey, I'm CJ! I'm an aspiring graphics programmer/technical artist/game developer from Waterloo, Ontario, Canada. I haven't drunk any caffeined beverages since 2022.
> I do not use generative AI in any of my work, and I do not intend to.
## History
-In 2021, I stumbled across Blender, and I spent my last two years in highschool playing around with the software. I had fallen in love with 3D animation at this point. I also played around with Unity, and took mostly coding and computer classes around this time. At some point, I took all the classes that were technology related. In 2023, I of course enrolled into software engineering in post-secondary school. Yikes. Spent a year through that and dropped out after realising it wasn't my cup of tea. It was through this experience, however, I realised I could combine my love for graphics and programming with, wait for it, :sparkles: ***graphics programming*** :sparkles:.
+Growing up in the Caribbean exposed me to different cultures, and I believe that exposure started an interest in social studies, history, and languages.
-During that software engineering schooling experience, I took an anthropology elective that really reöpened my interest in a lot of topics under that umbrella, most specifically languages (more info in [here](@/projects/language_stuff/_index.md)). In primary and secondary school, I had an interest in social studies and history, and now I study those topics on my own.
+My introduction to animation coincided with my introduction to computers and programming in highschool. I would have envisioned myself a game developer or some sort of programmer as I was graduating highschool, so I pursued Software Engineering. Turned out I didn't like the idea of being a software engineer, so I dropped out. During that time, I took an anthropology elective which reintroduce my interest in the humanities.
Nowadays I'm trying to get back into 3D animation and game development, while trying to self-study and occasionally refurbishing computers.
-## Stuff I use:
+## Software I use:
- Blender (i wuv bwendew )
- Godot (started using in 2025 to replace Unity)
- GIMP
@@ -22,6 +22,6 @@ Nowadays I'm trying to get back into 3D animation and game development, while tr
- i use arch btw
- Neovim (code and text editor)
- Obsidian (note taking)
-- fooyin (started using it in mid-January of 2026 instead of Spotify)
+- fooyin (music listening)
- Foliate (for e-book reading)
-- Helium Browser (replaced Brave browser)
+- Helium Browser
diff --git a/content/secrets/_index.md b/content/secrets/_index.md
deleted file mode 100644
index f80f28e..0000000
--- a/content/secrets/_index.md
+++ /dev/null
@@ -1,6 +0,0 @@
-+++
-template = "secrets.html"
-page_template = "projects-page.html"
-title = "Secrets"
-+++
-what the fuck is this place??
diff --git a/content/secrets/forest/index.md b/content/secrets/forest/index.md
deleted file mode 100644
index 4f145f6..0000000
--- a/content/secrets/forest/index.md
+++ /dev/null
@@ -1,7 +0,0 @@
-+++
-title = "The Forest"
-+++
-The forest is growing, come back another time.
-
-###### (I forgot to create the forest)
-
diff --git a/content/secrets/kennel/index.md b/content/secrets/kennel/index.md
deleted file mode 100644
index 2b2934d..0000000
--- a/content/secrets/kennel/index.md
+++ /dev/null
@@ -1,4 +0,0 @@
-+++
-title = "The Kennel"
-+++
-
diff --git a/content/stuff_I_like/_index.md b/content/stuff_I_like/_index.md
index e66cec3..15bfc84 100644
--- a/content/stuff_I_like/_index.md
+++ b/content/stuff_I_like/_index.md
@@ -3,44 +3,15 @@ template = "index.html"
title = "Stuff I Like"
+++
-## Food
-- *Bánh mì* is my favourite food right now
-- *Shawarma poutine*
-- *Bangers and Mash*
-- *Mayo and bread with lettuce to feel fancy*
-- *Veggie Springrolls*
-- *Fish and Chips*
-- *Chicken Pineapple pizza with mayo as a dip*
-- *Diet/Sugar free Ginger Ale*
-- *Chow mein*
-- *Lo mein*
-- You can always bribe me with *Dark chocolate mint thins* or those *Scottish caramel chocolate wafers* I forgot the name of
-
-## Music
-This is in no way all of my favourite artists, there are too many to list. These are just the ones I really enjoy and don't mind sharing (in no particular order):
-
-- *FIBEL*
-- *HARBOUR*
-- *Provinz*: I just listened to them a lot when I was learning German.
-- *Molchat Doma*
-- *LOOK MUM NO COMPUTER*
-- *DOUBLECAMP*
-- *SOFFIE*
-- *AJR*
-- *Emil Kárlsen*: I really enjoyed his song Muohta and the album Nagirvárrái.
-- *Dorian Concept*
-- *tomcbumpz*
-- *Pogo*
-- *anaïs*
-- *Home*
-- *Nanook*: I really like their song Ingerlaliinnaleqaagut.
-- *Paysage D'Hiver*
## Films and Animations
- *The Seventh Seal/Det Sjunde Inseglet* (1957, Ingmar Bergman)
- *Godland/Volaða Land* (2022, Hlynur Pálmason)
- *Bob* (by [InfinityBurrito](https://www.youtube.com/@infinityburrito5299/featured))
- *The Transformers* (1984-1987)
- *Ivan's Childhood* (1962, Andrei Tarkovsky)
+- *The Tragedy of Man* (2011, Marcell Jankovics)
+- *Andor* (2022-2025, Tony Gilroy)
+
## Games
I'm not really a gamer but these are some stuff I liked:
- *Navicula Meatus*
@@ -48,3 +19,9 @@ I'm not really a gamer but these are some stuff I liked:
- *Viewfinder*
- *Sable*
- *Plants vs. Zombies*
+- *Critters for Sale*
+- *Moon Hunters*
+- *Felvidek*
+- *s.p.l.i.t*
+- *Lost Wiki*
+- *Unsorted Horror*
diff --git a/sass/style.scss b/sass/style.scss
index 565acdd..72052c1 100644
--- a/sass/style.scss
+++ b/sass/style.scss
@@ -1,5 +1,4 @@
@use "colours";
-
body {
background-color: colours.$background;
font-family: 'Roboto Mono';
@@ -70,6 +69,10 @@ strong {
color: colours.$blockquote;
}
+img {
+ padding-left: 0%;
+}
+
hr {
background: linear-gradient(to right, colours.$h1, colours.$periwinkle, colours.$h1, colours.$periwinkle, colours.$h1);
height: 5px;
@@ -127,3 +130,4 @@ p {
#statuscafe-content {
margin: 0 1em 0.5em 1em;
}
+
diff --git a/static/secrets/forest/forest.js b/static/secrets/forest/forest.js
deleted file mode 100644
index ccc1800..0000000
--- a/static/secrets/forest/forest.js
+++ /dev/null
@@ -1,49 +0,0 @@
-import * as THREE from 'three';
-import { OBJLoader } from 'three/addons/loaders/OBJLoader.js';
-
-const renderer = new THREE.WebGLRenderer({ canvas: document.querySelector('#forest'), });
-const scene = new THREE.Scene();
-const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
-let modelObject = new THREE.Object3D;
-
-renderer.setSize( window.innerWidth, window.innerHeight );
-renderer.setAnimationLoop( animate );
-
-camera.position.z = 5;
-
-// OBJ loader.
-const objectLoader = new OBJLoader();
-objectLoader.load(
- "/../../wolf_head/wolf_head.obj",
- function(object) {
- console.log(object);
- modelObject = object;
- object.traverse((child) => {
- // instance of is apparently the reason god made typescript
- if (child instanceof THREE.Mesh) {
- // Create material for the mesh.
- child.material = new THREE.MeshStandardMaterial({ color: 0x962FFE });
- child.material.wireframe = true;
- child.material.wireframeLinewidth = 1;
- child.material.emissive = (new THREE.Color().setHex(0xff3030));
- }
- });
-
- scene.add(object);
- },
- function(xhr) {
- console.log((xhr.loaded / xhr.total * 100) + '% loaded');
- },
- function(error) {
- console.log('an error happened', error);
- }
-);
-
-function animate() {
-
- modelObject.rotation.x += 0.01;
- modelObject.rotation.y += 0.01;
-
- renderer.render( scene, camera );
-
-}
diff --git a/static/secrets/kennel/finger.png b/static/secrets/kennel/finger.png
deleted file mode 100644
index 9f92a50..0000000
Binary files a/static/secrets/kennel/finger.png and /dev/null differ
diff --git a/static/secrets/kennel/paw.png b/static/secrets/kennel/paw.png
deleted file mode 100644
index fdd7e4c..0000000
Binary files a/static/secrets/kennel/paw.png and /dev/null differ
diff --git a/static/secrets/kennel/test.bin b/static/secrets/kennel/test.bin
deleted file mode 100644
index 1b8e802..0000000
Binary files a/static/secrets/kennel/test.bin and /dev/null differ
diff --git a/static/secrets/kennel/test.gltf b/static/secrets/kennel/test.gltf
deleted file mode 100644
index c37d379..0000000
--- a/static/secrets/kennel/test.gltf
+++ /dev/null
@@ -1,324 +0,0 @@
-{
- "asset":{
- "generator":"Khronos glTF Blender I/O v4.5.48",
- "version":"2.0"
- },
- "scene":0,
- "scenes":[
- {
- "name":"Scene",
- "nodes":[
- 0,
- 1,
- 2
- ]
- }
- ],
- "nodes":[
- {
- "mesh":0,
- "name":"Plane",
- "scale":[
- 25,
- 25,
- 25
- ]
- },
- {
- "mesh":1,
- "name":"Cube",
- "translation":[
- 0,
- 1,
- 2.458730936050415
- ]
- },
- {
- "mesh":2,
- "name":"Suzanne",
- "rotation":[
- 0.08822915703058243,
- -0.27138662338256836,
- 0.0949493795633316,
- 0.9537031054496765
- ],
- "translation":[
- 6.071174144744873,
- 2.417121171951294,
- 0
- ]
- }
- ],
- "materials":[
- {
- "doubleSided":true,
- "name":"Ground",
- "pbrMetallicRoughness":{
- "baseColorFactor":[
- 0.37110745906829834,
- 0.39915257692337036,
- 0.364591121673584,
- 1
- ],
- "metallicFactor":0,
- "roughnessFactor":0.5
- }
- },
- {
- "doubleSided":true,
- "name":"Cube",
- "pbrMetallicRoughness":{
- "baseColorFactor":[
- 0.8000937700271606,
- 0.00807161070406437,
- 0.025698840618133545,
- 1
- ],
- "metallicFactor":0,
- "roughnessFactor":0.5
- }
- },
- {
- "doubleSided":true,
- "name":"Monkey",
- "pbrMetallicRoughness":{
- "baseColorFactor":[
- 0.12672929465770721,
- 0.03563183546066284,
- 0.8001565933227539,
- 1
- ],
- "metallicFactor":0,
- "roughnessFactor":0.5
- }
- }
- ],
- "meshes":[
- {
- "name":"Plane",
- "primitives":[
- {
- "attributes":{
- "POSITION":0,
- "NORMAL":1,
- "TEXCOORD_0":2
- },
- "indices":3,
- "material":0
- }
- ]
- },
- {
- "name":"Cube.001",
- "primitives":[
- {
- "attributes":{
- "POSITION":4,
- "NORMAL":5,
- "TEXCOORD_0":6
- },
- "indices":7,
- "material":1
- }
- ]
- },
- {
- "name":"Suzanne",
- "primitives":[
- {
- "attributes":{
- "POSITION":8,
- "NORMAL":9,
- "TEXCOORD_0":10
- },
- "indices":11,
- "material":2
- }
- ]
- }
- ],
- "accessors":[
- {
- "bufferView":0,
- "componentType":5126,
- "count":4,
- "max":[
- 1,
- 0,
- 1
- ],
- "min":[
- -1,
- 0,
- -1
- ],
- "type":"VEC3"
- },
- {
- "bufferView":1,
- "componentType":5126,
- "count":4,
- "type":"VEC3"
- },
- {
- "bufferView":2,
- "componentType":5126,
- "count":4,
- "type":"VEC2"
- },
- {
- "bufferView":3,
- "componentType":5123,
- "count":6,
- "type":"SCALAR"
- },
- {
- "bufferView":4,
- "componentType":5126,
- "count":24,
- "max":[
- 1,
- 1,
- 1
- ],
- "min":[
- -1,
- -1,
- -1
- ],
- "type":"VEC3"
- },
- {
- "bufferView":5,
- "componentType":5126,
- "count":24,
- "type":"VEC3"
- },
- {
- "bufferView":6,
- "componentType":5126,
- "count":24,
- "type":"VEC2"
- },
- {
- "bufferView":7,
- "componentType":5123,
- "count":36,
- "type":"SCALAR"
- },
- {
- "bufferView":8,
- "componentType":5126,
- "count":1966,
- "max":[
- 1.3671875,
- 0.984375,
- 0.8515625
- ],
- "min":[
- -1.3671875,
- -0.984375,
- -0.8515625
- ],
- "type":"VEC3"
- },
- {
- "bufferView":9,
- "componentType":5126,
- "count":1966,
- "type":"VEC3"
- },
- {
- "bufferView":10,
- "componentType":5126,
- "count":1966,
- "type":"VEC2"
- },
- {
- "bufferView":11,
- "componentType":5123,
- "count":2904,
- "type":"SCALAR"
- }
- ],
- "bufferViews":[
- {
- "buffer":0,
- "byteLength":48,
- "byteOffset":0,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":48,
- "byteOffset":48,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":32,
- "byteOffset":96,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":12,
- "byteOffset":128,
- "target":34963
- },
- {
- "buffer":0,
- "byteLength":288,
- "byteOffset":140,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":288,
- "byteOffset":428,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":192,
- "byteOffset":716,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":72,
- "byteOffset":908,
- "target":34963
- },
- {
- "buffer":0,
- "byteLength":23592,
- "byteOffset":980,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":23592,
- "byteOffset":24572,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":15728,
- "byteOffset":48164,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":5808,
- "byteOffset":63892,
- "target":34963
- }
- ],
- "buffers":[
- {
- "byteLength":69700,
- "uri":"test.bin"
- }
- ]
-}
diff --git a/static/secrets/kennel/test2.bin b/static/secrets/kennel/test2.bin
deleted file mode 100644
index bcffd81..0000000
Binary files a/static/secrets/kennel/test2.bin and /dev/null differ
diff --git a/static/secrets/kennel/test2.gltf b/static/secrets/kennel/test2.gltf
deleted file mode 100644
index bcd6af2..0000000
--- a/static/secrets/kennel/test2.gltf
+++ /dev/null
@@ -1,420 +0,0 @@
-{
- "asset":{
- "generator":"Khronos glTF Blender I/O v4.5.49",
- "version":"2.0"
- },
- "scene":0,
- "scenes":[
- {
- "name":"Scene",
- "nodes":[
- 0,
- 1,
- 2,
- 3
- ]
- }
- ],
- "nodes":[
- {
- "mesh":0,
- "name":"Plane",
- "scale":[
- 25,
- 25,
- 25
- ]
- },
- {
- "mesh":1,
- "name":"Cube",
- "translation":[
- 0,
- 1,
- 2.458730936050415
- ]
- },
- {
- "mesh":2,
- "name":"Suzanne",
- "rotation":[
- 0.08822915703058243,
- -0.27138662338256836,
- 0.0949493795633316,
- 0.9537031054496765
- ],
- "translation":[
- 6.071174144744873,
- 2.417121171951294,
- 0
- ]
- },
- {
- "mesh":3,
- "name":"Icosphere",
- "translation":[
- -2.5536391735076904,
- 2.877737522125244,
- -0.012781083583831787
- ]
- }
- ],
- "materials":[
- {
- "doubleSided":true,
- "name":"Ground",
- "pbrMetallicRoughness":{
- "baseColorFactor":[
- 0.37110745906829834,
- 0.39915257692337036,
- 0.364591121673584,
- 1
- ],
- "metallicFactor":0,
- "roughnessFactor":0.5
- }
- },
- {
- "doubleSided":true,
- "name":"Cube",
- "pbrMetallicRoughness":{
- "baseColorFactor":[
- 0.8000937700271606,
- 0.00807161070406437,
- 0.025698840618133545,
- 1
- ],
- "metallicFactor":0,
- "roughnessFactor":0.5
- }
- },
- {
- "doubleSided":true,
- "name":"Monkey",
- "pbrMetallicRoughness":{
- "baseColorFactor":[
- 0.12672929465770721,
- 0.03563183546066284,
- 0.8001565933227539,
- 1
- ],
- "metallicFactor":0,
- "roughnessFactor":0.5
- }
- },
- {
- "doubleSided":true,
- "name":"Material",
- "pbrMetallicRoughness":{
- "baseColorFactor":[
- 0.13890013098716736,
- 0.8004242181777954,
- 0.06036654859781265,
- 1
- ],
- "metallicFactor":0,
- "roughnessFactor":0.5
- }
- }
- ],
- "meshes":[
- {
- "name":"Plane",
- "primitives":[
- {
- "attributes":{
- "POSITION":0,
- "NORMAL":1,
- "TEXCOORD_0":2
- },
- "indices":3,
- "material":0
- }
- ]
- },
- {
- "name":"Cube.001",
- "primitives":[
- {
- "attributes":{
- "POSITION":4,
- "NORMAL":5,
- "TEXCOORD_0":6
- },
- "indices":7,
- "material":1
- }
- ]
- },
- {
- "name":"Suzanne",
- "primitives":[
- {
- "attributes":{
- "POSITION":8,
- "NORMAL":9,
- "TEXCOORD_0":10
- },
- "indices":11,
- "material":2
- }
- ]
- },
- {
- "name":"Icosphere",
- "primitives":[
- {
- "attributes":{
- "POSITION":12,
- "NORMAL":13,
- "TEXCOORD_0":14
- },
- "indices":15,
- "material":3
- }
- ]
- }
- ],
- "accessors":[
- {
- "bufferView":0,
- "componentType":5126,
- "count":4,
- "max":[
- 1,
- 0,
- 1
- ],
- "min":[
- -1,
- 0,
- -1
- ],
- "type":"VEC3"
- },
- {
- "bufferView":1,
- "componentType":5126,
- "count":4,
- "type":"VEC3"
- },
- {
- "bufferView":2,
- "componentType":5126,
- "count":4,
- "type":"VEC2"
- },
- {
- "bufferView":3,
- "componentType":5123,
- "count":6,
- "type":"SCALAR"
- },
- {
- "bufferView":4,
- "componentType":5126,
- "count":24,
- "max":[
- 1,
- 1,
- 1
- ],
- "min":[
- -1,
- -1,
- -1
- ],
- "type":"VEC3"
- },
- {
- "bufferView":5,
- "componentType":5126,
- "count":24,
- "type":"VEC3"
- },
- {
- "bufferView":6,
- "componentType":5126,
- "count":24,
- "type":"VEC2"
- },
- {
- "bufferView":7,
- "componentType":5123,
- "count":36,
- "type":"SCALAR"
- },
- {
- "bufferView":8,
- "componentType":5126,
- "count":1966,
- "max":[
- 1.3671875,
- 0.984375,
- 0.8515625
- ],
- "min":[
- -1.3671875,
- -0.984375,
- -0.8515625
- ],
- "type":"VEC3"
- },
- {
- "bufferView":9,
- "componentType":5126,
- "count":1966,
- "type":"VEC3"
- },
- {
- "bufferView":10,
- "componentType":5126,
- "count":1966,
- "type":"VEC2"
- },
- {
- "bufferView":11,
- "componentType":5123,
- "count":2904,
- "type":"SCALAR"
- },
- {
- "bufferView":12,
- "componentType":5126,
- "count":240,
- "max":[
- 0.9510578513145447,
- 1,
- 0.9999999403953552
- ],
- "min":[
- -0.9510578513145447,
- -1,
- -0.9999999403953552
- ],
- "type":"VEC3"
- },
- {
- "bufferView":13,
- "componentType":5126,
- "count":240,
- "type":"VEC3"
- },
- {
- "bufferView":14,
- "componentType":5126,
- "count":240,
- "type":"VEC2"
- },
- {
- "bufferView":15,
- "componentType":5123,
- "count":240,
- "type":"SCALAR"
- }
- ],
- "bufferViews":[
- {
- "buffer":0,
- "byteLength":48,
- "byteOffset":0,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":48,
- "byteOffset":48,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":32,
- "byteOffset":96,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":12,
- "byteOffset":128,
- "target":34963
- },
- {
- "buffer":0,
- "byteLength":288,
- "byteOffset":140,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":288,
- "byteOffset":428,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":192,
- "byteOffset":716,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":72,
- "byteOffset":908,
- "target":34963
- },
- {
- "buffer":0,
- "byteLength":23592,
- "byteOffset":980,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":23592,
- "byteOffset":24572,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":15728,
- "byteOffset":48164,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":5808,
- "byteOffset":63892,
- "target":34963
- },
- {
- "buffer":0,
- "byteLength":2880,
- "byteOffset":69700,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":2880,
- "byteOffset":72580,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":1920,
- "byteOffset":75460,
- "target":34962
- },
- {
- "buffer":0,
- "byteLength":480,
- "byteOffset":77380,
- "target":34963
- }
- ],
- "buffers":[
- {
- "byteLength":77860,
- "uri":"test2.bin"
- }
- ]
-}
diff --git a/static/secrets/kennel/woof.js b/static/secrets/kennel/woof.js
deleted file mode 100644
index e912cb5..0000000
--- a/static/secrets/kennel/woof.js
+++ /dev/null
@@ -1,117 +0,0 @@
-import * as THREE from 'three';
-import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
-import { PointerLockControls } from 'three/addons/controls/PointerLockControls.js';
-
-// Variables
-const renderer = new THREE.WebGLRenderer({ canvas: document.querySelector('#kennel'), });
-const camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 1, 1000);
-const light = new THREE.HemisphereLight(0xeeeeff, 0x777788, 2.5);
-const controls = new PointerLockControls(camera, renderer.domElement);
-const scene = new THREE.Scene();
-const clock = new THREE.Clock();
-const keyMap = {}
-
-// 3D Loaders.
-const room = new GLTFLoader();
-const image = new THREE.TextureLoader();
-
-let pawTexture, fingerTexture, currentSprite;
-
-init();
-
-//Initialisation
-function init() {
- // Renderer
- renderer.setSize(window.innerWidth, window.innerHeight);
-
- // Camera
- camera.position.z = 5;
-
- // Light
- light.position.set(0.5, 1, 0.75);
- scene.add(light);
-
- // Scene
- scene.background = new THREE.Color(0x000000);
-
- // Controller
- document.addEventListener('click', () => {
- controls.lock();
- });
-
- const onDocumentKey = (e) => {
- keyMap[e.code] = e.type === 'keydown';
- };
- document.addEventListener('keydown', onDocumentKey, false);
- document.addEventListener('keyup', onDocumentKey, false);
-
- room.load(
- // url of file
- 'test2.gltf',
- // when resource is loaded
- function(gltf) {
- gltf.scene.position.y = -1;
- scene.add(gltf.scene);
-
- gltf.animations;
- gltf.scene;
- gltf.scenes;
- gltf.cameras;
- gltf.asset;
- },
- //when loading is progressing
- function(xhr) {
- console.log((xhr.loaded / xhr.total * 100) + '% loaded');
- },
- // when error
- function(error) {
- console.log('a fucking error lmao: ', error);
- }
- );
-
- image.load('paw.png', (texture) => {
- pawTexture = texture;
- image.load('finger.png', (texture) => {
- fingerTexture = texture;
- const material = new THREE.SpriteMaterial({ map: texture });
- currentSprite = new THREE.Sprite(material);
- currentSprite.position.set(1, -0.7, -1.5);
- camera.add(currentSprite);
- scene.add(camera);
-
- });
- });
-
-}
-
-function animate() {
- const delta = clock.getDelta();
-
- if (controls.isLocked) {
- if (keyMap['KeyW']) {
- controls.moveForward(delta * 5);
- }
- if (keyMap['KeyS']) {
- controls.moveForward(-delta * 5);
- }
- if (keyMap['KeyA']) {
- controls.moveRight(-delta * 5);
- }
- if (keyMap['KeyD']) {
- controls.moveRight(delta * 5);
- }
- if (keyMap['ShiftLeft']) {
- if (currentSprite && fingerTexture && currentSprite.material.map !== fingerTexture) {
- currentSprite.material.map = fingerTexture;
- console.log("finger up");
- }
- } else {
- if (currentSprite && pawTexture && currentSprite.material.map !== pawTexture) {
- currentSprite.material.map = pawTexture;
- console.log("finger down");
- }
- }
- }
- renderer.render(scene, camera);
-}
-renderer.setAnimationLoop(animate);