DRAFTING ROOM

TO DO
  • Fix low mouse sensitivity on safari

May 22, 2026

Build

desktop.glb and "Foliage:" "Collisions:" models & refactoring area streaming completely

  • desktop.glb center base now located at 0,0,0 and added a desktopCoords.glb to print coordinates
  • Refactored areaConfig to organize models by "Foliage" to be transparent and "Collisions" to have octree collision. All materials get the same properties
  • Streaming: area load / unload optimizations
  • Last used computer is stored using a similar player id fingerprint as the scoreboard
  • Attempted to fix loading issues when tested on Lunas work laptop. I think it worked?
  • Added supplemental desktops and their own html page, each with their own unique flower texture

May 21, 2026

Build

AreaConfig

  • Locations and spaces are now organized by areas which define the systems (water, enemies, doors) the lighting, and soon the noise. The computers will simply call these areas to load.
  • areTiggers.glb that will print the coordinates to be pasted for each area.

May 20, 2026

Build

Collapse button and loading gif

  • Smoother scrolling when loading registry is collapsed
  • Loading disc gif added
  • Inset borders resized to be proportional to the desktop borders
  • fixed current loading model from staying in the bar after being loaded

May 18, 2026

Build

Lowered camera

  • Reverted back to default walking, double tap aswd to run. Need to find a better way to run, but to begin the game walking in a small room is a nicer progression.
  • lowered the camera so the eyes should match player model when viewed in mirror.

May 16, 2026

Build

iframe dom moving and resizing fixed and desktop click

  • iframe was moving around when the screne was resized, very noticable on mobile
  • screen click now raycasts and hits the whole desktop.glb

May 16, 2026

Build

Desktop.glb

  • screen.glb is now a part of desktop.glb and are positioned in the world with coordintates

May 15, 2026

Build

Ocean

  • Added animated ocean shader using https://github.com/Nugget8/Three.js-Ocean-Scene

May 13, 2026

Build

Transparency textures now MeshLambert

  • Could not fix the mouse sensitivity on safari
  • The light sheen on the transparency model's textures fixed by swapping to MeshLambert

May 12, 2026

Optimize

Draw cell cutdown

  • iframe on the screen.glb optimized, when the iframe is on the screen.glb (iframe DOM) the resolution is lowered to 640x400 and the css gets injected to fix the layout of the screen items.
  • When falling out of bounds into the void the player still has 40 draw calls even with nothing around. Asked AI to find the problem and it came back with issues with bloom.
  • Bloom effects only exist when the player is being revived
  • Desktop animation optimized

May 11, 2026

Build

Projectiles push objects

  • Joining the chair.glb model causes the "seat" and the "base" to no longer rotate differently.
  • Projectiles have force that pushes objects like the chair

Website

Index buttons styling

  • Reworked index buttons to appear like the enter and save buttons. Preparing for the new scoreboard layout to only be on index.html

May 9, 2026

Build

Added initial angle parameter for doors and projectile force

  • New parameter for doors perpendcular or any angle for the door to be loaded in initally
  • Elevator doors break and open to one side due to being joined with the npx gltf-join
  • Added a force from the projectiles to push the chair around but this caused collision with invisible geometry directly infront of the first door. NEED TO ADD AGAIN LATER

Model

Shifted office spaces

  • Shifted all office spaces to both contain a part of the column. Might need to adjust office depth to reveal more column. Or might remove cubicals because Im already lagging.

May 8, 2026

Build

Mirror reflects only bathroom.glb

  • Changed the mirror to only reflect bathroom.glb, doorStall.glb, playerModel.glb and playerHead.glb in hopes to make it more efficient.
  • Added a "mirror" parameter for the door models on load

Model

New bathroom layout and bathroom.glb

  • New restroom layout. Criteria: Mirror reflection does not have an angle that shows office.glb. The mens and womans restroom doors are positioned facing each othe. And when the player first opens the restroom door they do not immedietly see a column but only the restroom tiles.

May 7, 2026

Build

Stall doors, mirror.js, lights, cursor and chair.js

  • Add 3 stall doors and added door angle adjustment on load. Setup last night with the hinge.glb works great
  • Added mirror.js which finds the mirror.glb and creates a mirror in the scene using Reflector.js. Only reflects collision-world.glb, playerModel.glb and playerHead.glb (a separate head model that only shows in reflection)
  • Added two more ambient lights for the top and bottom of geometry. Ambient light set to 1. When at 3 it looks good but it washes out the differenciation from the other veritcal directional lights
  • Cursor fixes when in iframe
  • Chairs collide with the player and momentum from the player is transferred to the chair, so it is pushed. Chair.glb is exported as two groups, Seat and Base. Base has a yaw rotation of 30% the yaw rotation of the Seat. The glb's bottom of the center point is exported at 0,0,0. Add chairCoords.glb and the console will print the coords which you can copy in the GSM.
  • To fix the lag there is now a .ps1 file that I run by .\gltf-join-all.ps1 in the terminal
  • ALOT of lag when initally walking around in the world is fixed when I separated the collision-world and the office to their own glbs. I have high hopes for when I can separate all models

May 6, 2026

Model

Staircase

  • Staircase modeling and guardrail

Build

Door Loader Changes

  • Major issues with doors not finding the correct pivot point because the bounding box of different doors are different due to different sized handles. Changed approach to specifying the pivot point of a door. Added a pivotpointDebug
  • Continued reworking door.js and now the door glbs center pivot point is placed at 0,0,0 in the world coordinates. The door and pivot points are placed at the hardcoded position defined on load in GSM. To find the correct coordinates place the hinge model and the console will print its center coordinates

May 5, 2026

Model

Shores

  • Reworked staircase to hug the cliffside

Build

Transparency

  • Found both the transparency and treeline models are traversed on load and all materials depthWrite is set to true and alphaTest=0.5. Change this value for sharper corners on a transparent texture. Due to this I don't think I need to use GLTF editor on models with transparency.

May 4, 2026

Model

Shores

  • Drew and modeled where the staircase meets the shores.

May 3, 2026

Optimize

Desktop.glb with pngopt

  • Used pngopt on the single texture on the desktop model. Got the size from 64.5kb to 42.9kb

Model

Office & Bathroom

  • Office and bathroom modeling

May 2, 2026

Optimize

UtilityDoor

  • Using "OptiPNG" and "OptimizedJPEG" plugins on paintdotnet I was able to get the door.glb model from 53kb to 27.4kb. Although the png on the exit device are clipping through. Might need to make that part of the jpg
  • Exit device geometry now three dimensional (gives the door weight) and consolodated the exit device texture onto the utility door texture while maintaining louver resolution. Utility door now 26kb.
  • Doors animation drops fps down slightly only when the object is fully exploded. So if it has too many faces. Grouping geometry resolves this lag.

Model

Office

  • Office modeling

Build

Chair physics

  • Issues with getting the chair to have simple physics so the player can push it around. Need to wait until githubs copilot is up again and the pro+ plans are available

May 1, 2026

Model

Office

  • Office modeling

Optimize

Chair

  • Simplified chair geometry drastically and added as it's own model chair.glb. In hopes to create chair physics so the player will push it around when walked into. Maybe a roating seat aswell.

April 30, 2026

Model

Monitor black border around iframe added to desktop.glb

  • Black border face added to desktop.glb to appear as a border around the iframe. Iframe given 16px border radius.

Build

Iframe orientation

  • Fixed iframe roating issue when roating camera. Hid it when camera is behind the screen.

April 29, 2026

Model

Office space & mouse added to desktop.glb

  • Began modeling the office space and obtaining textures
  • Modeled mouse model with single faced wire. Beveled edges of the mouse and although it uses a lot of triangles it looks great.
  • Swapped out keyboard texture again

Optimize

Desktop.glb optimizing

  • Single "DesktopTotal.jpg" texture for the keyboard, mouse, desktop tower front and back
  • Remodeled desktop to have less triangles but maintained beveled edges and protruding front frame.
  • Used npx gltf-transform join on the desktop.glb file. This brought the model size from 102.3kb at 1052 triangles to 60.8kb at 325 triangles
  • Further Aligned Further Aligned

April 28, 2026

Build

Mobile jump responsiveness

  • Shifted button slightly away from the bottom of the screen because "Mobile browsers have edge-detection zones that can intercept touches"

April 27, 2026

Build

4 directional light's + intensity

  • 4 directional lights added in GameStateManager.js for more contrast in geometry.
  • Two fingers on mobile should work, to allow jumping while also moving using the joystick.

Model

Walls on 32' bay, new columns & restaurant layout

  • Iterated on columns/pilasters form. Sloped portion dropped down to be against the wall to act as support and a smaller 4'x4' column supporting the railing.
  • Simplified chiseled planters and grouped certain areas to not have geometry intersect other geometry
  • Added tables and benches for the resaurant
  • Center of walls align to 32' bay grid.
  • Due to this ^^^ the tiles are misaliged by 1' and I began to compensate for this, making 1' wide curbs wrapping around columns to cover the 1' tile, but this is adding shit ontop of shit.
  • Realigned ceramic tiles with the bays. Pushed railings and guardrails inwards so the face of wall below is algined with the grid, just as it is in the larger platforms with the pilasters (left in pic)
  • Further Aligned

April 26, 2026

Model

32' bays & railing

  • Centers of all columns and pilasters are aligned to the 32' bay grid. Platforms and walls are built offset inwards.
  • 32' Bays
  • New railing design for outer edges
  • Railing Section 0.1
  • Monolithic walls are sloped at 32' every 1'. Testing, not convinved.

April 25, 2026

Build

Damage flash and enemy collision

  • Damage Flash added styled with mix-blend-mode: multiply in main.css
  • Drones now collide with eachother. No longer stacking which caused what would appear like one drone to deal more than one hit
  • Each projectile rotates randomly
  • Re-worked projectile texture

April 24, 2026

Build

Mobile & Current Loading

  • Webpages look better on mobile. Loading context responds too
  • Added a line above loading log with its own borders to display model currently being loaded

Model

Transparency.glb

  • Added more trees from tonytextures
  • Fixed naming of the seamless grass texture so the loading log doesn't stretch so wide

April 23, 2026

Optimize

Utility Door glb Optimizing

  • Combined 4 textures for the utility door into one texture sheet but this resulted in a 14.1kb increase in file size, from 65kb to 79.4kb. This is due to using one larger PNG texture image yet most of it is opaque for the door texture.
  • Squished the door from 128x256 to 128x128 then fit the rest of the textures in the the other half above in that 128px high alpha space. With one png texture sheet I got 52.2kb.
  • Using the door as one large jpg and one png for the door handle and exit device brought the file size to 49.8kb.
  • Utility Door Combined Utility Door Combined 2 Exit Device and Handle Utility Door

April 22, 2026

Model

WorldDrafting

  • Began working on drafting in WorldDrafting.skp. So I can have different locations connect

Build

Sliding

  • Added sliding mechanic

April 21, 2026

Build

Run npx gltf-transform join

  • When asking about controlling meshes in GLBs, I realized the meshes in the loading registry go from mesh_0 - mesh_447. This is due to multiple groups in SketchUp. I was then shown"gltf-transform join".

Website

Loading Context & Drafting Room Appearance

  • In order to report a model loading and its texture in the loading context I need to add "registerExpected('geometry')...". This was changed and I now any loader.load will be sent through "patchLoader" which sends it through to LoadingRegister to be tracked
  • LoadingRegister.js to handle the loading state and progress reporting for the loadingContext.
  • Messed with mixblend modes and borders

Model

Loading Context

  • Began renaming textures after seeing what the textures names in from the loding registry. Need to rename the file and reimport it into the SketchUp model.

April 20, 2026

Website

Loading and scoreboard

  • Scoreboard text and loading context. "GameStateManager.js — single source of truth for all model loading"

April 19, 2026

Website

Loading and scoreboard

  • Vertical loading bars, black box for the loading log, and scoreboard visual overhaul (borders and text mixblendmodes).
  • Tested adjusting FOV when at the computer to see space around the desktop and not using a fullscreen iframe, for the camera to only be in front of the iframe screen. A method at showing the layered game engine stuff ontop of a typical webpage. To make a clear distinction.

Model

Utility Door

  • Modeled utility door with new textures and chair upholstery

April 18, 2026

Website

Drafting Room redesign

  • Reworking the drafting room layout and design. The ENTER button, loading bar and track text is all created in the game engine.html and sits ontop of the drafting room html.

April 17, 2026

Model

Utility Door

  • Modeled utility door with new textures

Build

Doors

  • Doors now load as individual GLB models and the hinge (pivot point) is calculated from the door's bounding box min corner and the hardcoded X+0.0131 and Z+0.0483

Website

Font

  • Updated website font to IoskeleyMono from https://github.com/ahatem/IoskeleyMono/releases

April 16, 2026

Model

Colonnade & more plants

  • Began work on the colonnade and adding more plants. Need to make the plants taller. Taller trees and taller trunks.

Build

Optimizations & doors

  • Doors load as their own glb models now, might change back to hardcoded to save memory
  • MAC was stuttering, now log the draw cells, triangles and geometry. Geometry seems to be the issue and it is an issue with SketchUps glb export.

April 15, 2026

Website

Back button styling

  • Iterated back button, now ENTER button
  • Added loading bar and asset loading trackers that logs what has been loaded. Prevents player from entering game until all assets are loaded.

April 14, 2026

Website

Calendar improved

  • Tightened calendar layout

April 13, 2026

Website

Calendar implemented

  • Calendar implemented and added to drafting room

April 11, 2026

Build

Hand awareness and cursor

  • Player hand awareness added and mouse cursor created

Model

Desktop model cleanup

  • Simplified desktop computer model and consolidated desktop tower textures

April 10, 2026

Build

Slopes, audio, hell fixes

  • Added sliding down slopes steeper than 45°
  • Elevator music and elevator ding added as positional audio
  • Fixed capsule and camera height changes when falling to hell

Model

Scaled Catalyst physical drawings

  • Scaled physical drawings of the Catalyst to rework digital model and now the proportions are significantly better

April 9, 2026

Build

Forest implemented and hell improvements

  • Catalyst model folder created and loads
  • Reworked webpage background contrast
  • Raised demon swarm intensity and face adjustments colliding with elevator
  • Elevator remodeled and re textured
  • Fog when falling into hell adjustments

Model

Z5 object randomizer and transparent slopes

  • Added transparent ramps at the stairs slope for smooth movement while climbing stairs
  • New tree appearance for taller trees with Bark
  • Tall grass object rotated and positioned randomly using new, free extension

April 8, 2026

Build

Drones and positional audio

  • Drones buzz like wasps with positional audio nodes assigned to the closest 20 drones

April 6, 2026

Build

Hell improvements

  • Hell sequence additions and optimizations

April 3, 2026

Build

Hell improvements

  • Hell sequence improvements

April 2, 2026

Build

Fingerprint id and sinking system in hell

  • Mobile & Incognito fingerprint id fixed
  • Scoreboard re-styled
  • TypicalWebpage and DraftingRoom log-section styles tightened for mobile
  • Added cooldown for fountain launch
  • Mobile jump button bug fixes and restyling to cover entire bottom right corner of screen
  • Used fountain texture for bloom stream and established a sinking system

April 1, 2026

Build

Mobile movements fixed

  • Mobile movements fixed, syncing with desktop movements/animations

March 31, 2026

Model

Player model

  • Reimported Steak model with wider shoulders, re-textured skin and re-modeled hands

Build

Player model

  • Mess with HAND_OFF = 0.0000001 & SHOULDER_SPREAD = 3 in PlayerHands.js to adjust arm positioning when firing projectiles.
  • Added a mirror using Reflector.js (added to objects folder) to adjust player model.
  • RUN_ARM_SPREAD = -0.30 in PlayerHands.js to adjust arm spread during run animation.

March 30, 2026

Model

Elevator model

  • Swapped out elevator model and platform model

Build

Hell improvements

  • Fixed how the models above fade when falling into hell
  • Red fog fades to white fog when rising up the elevator. Bloom applied to this

Optimize

Hell improvements

  • Continued to reduce lag before, during and after hell sequence

March 29, 2026

Build

Hell improvements

  • Added floating heads in hell, WIP

Optimize

Hell improvements

  • Reduced lag during and when falling into hell

March 28, 2026

Model

Plants and bench rearrangement

  • Rearranged planters and stairs on grand staircase
  • Shifted around benches around fountain on second level

Build

Player momentum improvements

  • Momentum maintained after first jump
  • Changed player sprint and walk controls
  • Center of the fountain launches player upwards
  • Added "falling" animation

Optimize

Frustum culling

  • Frustum culling implemented for enemies. Very effective

March 27, 2026

Build

Player model

  • Used textures from muscle man on low poly skinny model and now it looks good when the head pivots
  • Hand held out to "cast" a projectile. With hand being positioned in the rotation the camera is facing, palm open, fingers fanned and arms extended outwards.
  • Crouch & crouch idle animation added
  • Implemented two hand system and introduced PlayerHands.js to keep track of hand interactions and status
  • Vaulting animation added
  • Effective optimizing fix for hell sequence

March 26, 2026

Build

Player model

  • Testing different player models, obtained 3 good test models
  • Added neck pivot
  • Discovered player model was super small and was being placed at the end of the collider, which was under the camera, appearing as if the player is large but actually very small. Problem was Maximo's export

March 25, 2026

Build

Player momentum

  • Implemented player vaulting, can be performed by pressing spacebar while sprinting towards geometry shorter than player
  • Removed bunny hopping
  • Kept air control the same to allow to jump when from a stand still
  • Player momentum preserved during first jump

March 24, 2026

Build

Player model

  • Iterated on player models and baking animations to a glb model.

March 23, 2026

Server

Server fix

  • Temporary fix for the firebase server

Build

Player model & other things

  • Lowered sideLight2 intensity for better pilaster geometry clarity
  • Player model testing in order to give the player a sense of self among the environment
  • Added a loading.gif while the scoreboard data is being fetched
  • Randomized background offset for visual variety
  • Consolidated scoreboard initialization and UI injection
  • Drone model loading properly hopefully

Model

Environment modeling

  • Large swaths of environment modeled ontop and within compound
  • More detailing of planters above

March 22, 2026

Modeling

Pilaster modeling

  • Iterated fluted pilaster textures. Inspired by New York City's Natural History Museum, Hall of African Mammals.
  • Positioned Pilasters on the 2^n bay grid, offset inwards by 2 feet to be recessed in the wall, making it a pilaster.

March 21, 2026

Modeling

Erode plugin bush modeling

  • Used Erode plugin to form bush geometry
  • Used a bush texture and reused same texture for colored variants

Build

Treeline.glb

  • Separated treeline geometry from transparent.glb and now loading Treeline.glb in start() function

March 20, 2026

Modeling

Grand staircase modeling

  • Shaped basic geometry for grand staircase

March 19, 2026

Modeling

Large swaths modeling

  • Began modeling in large swaths.

Website

Log section and Typical Webpage

  • Reworked this log section appearance
  • Streamlined CSS use in these 3 htmls and tweaked scoreboard appearance

March 18, 2026

Modeling

2^n bay grid and chiseled texture

  • Shifted use of 2^n from being the literal dimensions of building parts to fitting the building parts into a 2^n bay grid. ((The stairs are 8" but that is not a power of 2. Could change it to 6" which would make it 2^-1))
  • Chiseled texture is now doubled for guardrails and along the sloped stairs for symmetry. This solves the issue with a chiseled baseboard on one side and a chiseled upper-half of a guardrail. They are now both chiseled.
  • Reworked stairs and planters in between flights

March 17, 2026

Modeling

Grand staircase planters

  • Worked on adding planters to grand staircase
  • Redone chiseled details on sloped geometry next to stairs to be 4' above tread nose. (only on steps to the right. must update elsewhere)

March 16, 2026

Modeling

Bench design and tropical plant

  • Added tropical plant and planter
  • Finalized bench design

Build

Lighting and performance adjustments

  • Brightened scene by adjusting AmbientLight and DirectionalLights in start() function in GameStateManager
  • Set antialias to false in GameEngine
  • Adjusted window.devicePixelRatio to "0.5, 2" in GameEngine. 0.5 fall back or 2 for maximum if the screen allows. Done to fix distant tree blurring

March 15, 2026

Modeling

Fountain & mist particles

  • Installed fountain and mist particles using same fountain texture
  • Iterated on bench designs

Build

Projectile collision and water texture

  • Added projectile collision detection
  • Water texture now uses UV scrolling instead of sprite sheet cycling

March 13, 2026

Modeling

Drafting Room designation and furnishing

  • Drafting Room designation
  • Furnished drafting room

Optimizing

Thorough optimization

  • Logged potential optimizations and made improvements where necessary
Build Model Website Optimize
NOTES OF IMPORTANCE
  • .\gltf-join-all.ps1
  • both the transparency and treeline models are traversed on load and all materials depthWrite is set to true and alphaTest=0.5
  • Limit the size of pngs as much as possible. Having a medium jpg and a medium png in one model is better than one large png in the same model.
  • Test if the pull back animation is slowed down for 120fps
  • Run npx gltf-transform join on a model to save data
  • Transparency file went from 27MB to 2.8MB after gltf-transform dedup
  • collision-world.glb: 504 meshes → 30 after gltf-transform join
normal
multiply
screen
overlay
darken
lighten
color-dodge
color-burn
hard-light
soft-light
difference
exclusion
hue
saturation
color
luminosity