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);