Releases: chekeichan/anVRopomotron
Releases · chekeichan/anVRopomotron
1.2.3 Compatibility Updates
1.2.3 (6/01/2023)
A Three.JS update bonked A-Frame components in version 1.4.2, needed for Quest Pro compatibility, and my museum of cards collapsed.
- Updated A-Frame to 1.4.2 and c-frame-managed components to latest versions.
- Removed aframe-fps-component link and code that allowed switching to mouselook and back in PC mode. It no longer works with the latest A-Frame.
- A-Frame 1.4.2 and the physics component now loads in a order that does not produce working physics bodies from gltf models. A new component, static-wait, now adds an event listener that waits for gltf models to load before trying to apply a physics body to it. A previously existing component, table-wait, dynamically adds dynamic bodies for grabbable objects in VR.
- New version, new movement scheme in VR. Smooth movement is back. Right stick smooth turns.
- Ada Rose Cannon's simple-navmesh-constraint component is now driving the navmesh. The A-Frame Extras version functions oddly as if everything was shifted despite where the model appeared to be.
- Two flipped normals in the navmesh fixed to be in line with the rest of the navmesh. This was not an issue with the old navmesh but simple-navmesh-constraint did not like it.
- Typos spotted and fixed.
- My name is under the museum name on the back wall now.
1.2.2 Four New Primates
It's summer so it's time to make models non-stop.
- Ardi the Ardipithecus ramidus makes her way down to the Human Evolution Hall! This important discovery gives a clear image of what hominin evolution was like pre-Lucy. I've never seen Ardi and Lucy lined up so making the model was illuminating for me. I didn't know that Ardi was taller and that her arms were so long. The reduction in arm length in Lucy is very stark now, though her arms are still proportionately longer than our own.
- Proboscis monkeys nose-in to the Asia section of Modern Primates! I just couldn't resist these special looking monkeys with the males and their bulbous flabby noses and females with sharp upturned ones. I modeled a male and female to show the sexual dimorphism in faces, limb proportions, and size. I had a hard time posing the male because they are typically seated upright while the monkey was modeled from the mandrill on four legs. Since the underlying rig is for a dog, sitting up caused a lot of visual problems that would take too long to fix. I avoided the issue by finding a vertical-yet-not-sitting pose for the male climbing up a tree that was based on a photograph online. The female is also posed from photograph relaxing on the same tree. Not to harp on the failures of this model, but I also tried leaf generation using the built-in Sapling Gen add-on, but I couldn't get satisfactory results this time.
- The Senegal galago sneaks its way to the Africa section of Modern Primates! This model was also very challenging. I tried to adapt the slow loris model but only the head remained in the final product. I had to completely remake the body and took the arms and legs of the tarsier (but with the feet of the loris!). I Frankensteined it all together into the galago. I could not find any references for a neutral pose, which is what I first model before applying an animation rig. There just aren't any good photos or illustrations of a galago that is not sitting or jumping, etc. Instead of that method of modeling, I went old-school and modeled the galago straight into its sitting pose with no rig. Due to the model's small size, I also took some shortcuts. For example, the arms and legs are not actually attached to the body!
- The Panamanian white-faced capuchin monkey scampers to the very bare Americas section of Modern Primates! This primate shows up in a lot of media so it one of the more well known types. The pose shows off the interesting proportions with a big head and very slim abdomen. The prehensile tail is another notable trait. Like Proconsul, I added some foliage to spice up the display. I then added foliage to the proboscis monkeys too. I started with the riggable four-legged monkey template that I made all the way back with the mandrill. I loosened up the polygons around the arms for more flexibility. Otherwise model construction had no innovations.
- The aye-aye got a slight refresh. The original baked lighting mimicked a nighttime scene but in hindsight that made no sense so now it is lit as the other primates are. While I was rebaking I noticed some bad UV arrangement on the tree branch so I fixed that too. Lastly the model is raised slightly to get a better look at the face.
- It took me a year but I realized that the rhesus monkey is in the Africa section when it should be in Asia. Problem is that there are published assignments that depend on the rhesus monkey's position. My Alexander the Great solution is to keep it there and add a sign implying every other model is grouped by region but the rhesus is not.
- Occlusion logic tweaked so rhesus monkey is visible from the Divider Hall.
- Human Evolution Hall got some flavor with images accompanying each model. The pictures are of the site or general region of each find.
- Divider Hall got a some flavor with a good Creative Commons image showing how experts view human evolution.
- Tweaks to asset loading.
- Loading from unpkg is getting real slow so I switched to jsDelivr.
- Behind the visitor at the start is a little text highlighting the newest additions.
- New version; new control scheme. jure's blink-controls is now the sole movement method. Both thumbsticks share the same control scheme: left and right to turn and press up/forward to start teleporting with the option to turn. It's the only movement scheme that has no issues across desktop, phone, and VR.
- Shadow-producing lights now follow the principle of the maps in the previous update: there are two that will (hopefully) seamlessly light where the viewer is by moving around based on the occlusion planes being touched.
1.2.1 Little Hotfixes
- A few hotfixes and tweaks that made it to live AnVRopomotron ahead of the next big update.
- Human Evolution Hall is brighter. This was the original concept but the hominin models used sharp lighting that implied a darker room so I adjusted the room bake to match. It didn't make sense for a dark room to have such vibrant colors so I aimed to fix the lighting across the board. I redid the lighting for each hominin model, using a 360 panorama hdri of the hall for matching lighting. The hominin and hall models were then rebaked with the new light.
- Rebaking also fixed the divider hallway bake that had lighting issues on the Human Evolution side.
- Human Evolution Hall has a new sign stating that the presentation of hominins is not complete.
- Occlusion tweaking so the divider hallway is visible while exiting stage 2 of the Modern Primate Hall.
- Tweaking of asset load priorities so the divider hallway loads in sooner since it is visible from the starting position.
- Teleportation movement disabled due to unpredictable interactions with Quest controllers.
Human Evolution Hall and Optimizations
- Welcome to a new Hall that addresses the big 'missing link' in this museum of biological anthropology. Human evolution is an especially difficult subject to portray in a way that informs but does not mislead. As with drawing, rendering the human form is a special challenge even compared to other primates. After two years of working 3D modeling and WebXR, I think I can do this topic justice. This version is the first of a growing set of exhibits as the other halls also experience.
- The Human Evolution Hall has its own model separate from the rest of the museum. The twisty divider hallway is visible from both sides and when the visitor is inside, moving down one end will reveal that part of the museum. There are three occlusion planes inside to hide and show each end appropriately. The divider model actually incorporates walls and ceilings from the adjoining Halls that would be visible from inside. This was done in Blender cutting and snapping vertices to precisely match each section.
- When in the Human Evolution Hall, the entire rest of the old museum despawns to save resources.
- The exhibit hall is pretty cool! Unlike everything before it, this exhibit goes vertical on a spirally extended family tree of hominins. The staircase was made in Blender following tutorials on using the array modifier around a point. The projecting platforms are done manually following a set routine of extrusions and scales. The time labels on the steps are shadow stencils like with the signage in other parts of the museum (Blender text hovering just over the surface to cast a shadow when baking).
- The flying maps make their way to the new Hall with extensions to the old code. The map image includes the new hall and a note on where the Credits are found. The maps got updated with the new Hall and two new spots to teleport: ground level and at the top of the spiral staircase. A line of code from Stackoverflow fixed an issue with the height not sticking.
- The shadow-producing light also moves with the user as they move through the divider hallway.
- The stands for the maps, seen in the Centerpiece Hall and Human Evolution Hall, are now baked in to their respective floor models to reduce draw calls in A-Frame.
- The four hominins have been worked on since 2020 from a base humanoid figure to each of the specific individuals. I modeled each one by one to a rigged and posed draft before wrapping them up with baking textures at the end of 2021 and the start of 2022 for Lucy. Some notes on their making:
- The baking actually used a subdivided model as the source of shading and highlights, with those details painted onto a texture map that the actual model shares. There is a Youtube tutorial of this process on the Neanderthal. The process seems pretty powerful with the ability to fake detail convincingly. Some care has to be taken on especially small UV islands, such as around the eyes and nose. Separating and scaling those up ironed out the visual issues.
- The forms are based on an general interpretation of how much soft tissue corresponds to the thickness of bones in humans and apes. Up-to-date research was done to see what professionals with hands-on experience thought, though I did not follow every one of those interpretations.
- The colors are made to be artificial, in no way reflecting what they looked like in real life. The reasons are that it would be impossible to know for sure, and would involve more guesswork than I'm comfortable with. I also tried some realistic tones and the models crossed right into the uncanny valley.
- For the same reasons, no hair or fur is present.
- Poses for everyone but Lucy are based on photographs of modern people who live in the respective region of each fossil.
- Lucy, the last of the four models, uses a few techniques not seen in the others. The switch to Blender 3.0 resulted in a better Rigify mod that handles eyes in a more intuitive way. Baking textures also started out from a 4096px image and downscaled to 1024 to blur edges. Lucy also has a color-based Easter egg to reflect her name's origin.
- To reduce draw calls, the hominin statues, stairs, and surrounding building are all one model.
- Raising Grab Lab tables lost their animations. It was causing problems with launching objects at light speed on load. Tables and objects now snap up into place for non-VR devices.
- All of the walls, floors, and ceilings got a new bake. Baking goes from 4096 but to 2048, and then smoothed by AI again. Just enough of the texture comes through.
- Updated A-Frame to 1.3.0. This version opens meshopt'd files by default, but unfortunately basis textures are still out of reach. As a trade-off to upgrading, I removed the basis images from earlier, returning to natively readable formats. The custom component to read meshoptimized and basis files was removed.
- JPG/PNG compressed using squoosh.app on some of the largest images and texture files. The highlight is the Calatrava Castle model, which dropped from 9.5MB to 3.7MB due to the texture compression.
- What else is neat is that the whole file size has dropped with this new update, even though the museum gained a large new space with four models! We saved around 4MB.
- Warp tweaked again to chain functions and wait for each animation to finish.
- Background physics handling changed to prevent object explosion on load. Grabbable objects are naturally static objects. Being in VR switches objects on after their respective table loads to hold them. Working on this change was a harrowing few hours before the version release. A maddening explosion of objects was actually not caused by switching modes as I had thought, but was actually due to the new navmesh being multiple floors, which made it take on a much larger boundary box than intended. Removing physics properties from the navmesh was the final fix.
- HTML streamlined using A-Frame mixins more effectively for many text boxes.
Small Tweaks
A few quick fixes and additions:
- Oculus controls keep flip flopping. Attempts to fix this issue:
- Updated A-Frame to 1.2. I didn't do this earlier because the update broke the navmesh and grabbing. To fix that:
- Used a tip to load the deprecated BufferGeometry
- Used another tip to load a fixed aframe-extras
- Now teleporting is set to right hand and movement is set to left hand
- Changed the wall instructions to match the new setup
- Updated A-Frame to 1.2. I didn't do this earlier because the update broke the navmesh and grabbing. To fix that:
- While I was tinkering:
- Warp animation tweaked to remove the startup wait
Plesiadapis and Fast Travel
- Plesiadapis claws its way to the Scale Model Hall! A relative of primates, the plesiadapis looks like a large squirrel. As the oldest organism in the Scale Model Hall, it takes its place at the start of the row of prehistoric life and as the attractor to that part of the museum since the gibbon was moved back into a more appropriate location with the modern primates.
- The latest exciting discovery by Lee Berger and his team is in the VR Grab Lab. The reconstruction of Leti's cranium features an intact midbrow and adult teeth in development. The VR ready model was made in stages. The original 10 million polygon (!) model was reduced to 2 million for later normal map baking. A copy was then taken down to 42,000 for vertex coloring based on published photos of the real replica. Lastly, another copy was taken down to 6,400 polygons, which is near the limit before the object outline became distorted. Details were then baked to this smallest model for huge rendering and file size savings.
- With the new floorplan, now is the time to work on strategically placed mini maps to warp the user to different exhibits. To reduce draw calls, maps will surreptitiously move through exhibits to be near you. The Centerpiece map at the start is mostly static since it is viewable from a lot of angles but it will move to the Scale Model Hall if you go deep in to the exhibit. The other map flits between the the exhibits more freely, starting in the Grab Lab but going where needed. Grab a carrot to go quickly to another exhibit.
- The warp comes with an effect to ease VR sickness. It is a ring primitive just off camera that is timed to shrink its inner ring until everything is obscured, move the camera to the new location, and expand the ring out of view again.
- Tweaks of the infrastructure to fine tune it to the new floorplan.
- The movement of the single dynamic light following you is more subtle.
- Occlusion tweaks to be more hidden, especially the rhesus monkey.
- WebXR Award trophy ground shadows fixed to match model rotation.
Aye-Aye and New Layout
- The aye-aye creeps its way into the Scale Model Hall! This lemur was the last primate up for voting but not the least since it has some amazing anatomy. Modeling the aye-aye turned out to be quite challenging due to a lack of good references for a black-furred nocturnal animal that lives only in Madagascar. Most online footage is based on one individual from the Duke Lemur Center who then went to the Cincinnati Zoo. The base model was just the previous slow loris model. As usual, it's not business as usual since a new technique was used: hair simulation. Aye-ayes have almost porcupine-like white straggly strands of fur on their backs. Instead of leaving them out or painting them onto the back directly, I used Blender's hair and physics sims to give an array of procedural strands that were then converted to a mesh. It was fun using these tools, which included a comb tool to direct the fur in an intuitive way. The aye-aye is posed using its traits to hunt for grubs in wood.
- Remodel of the Scale Model Hall and Burial Chamber exhibits. Upgrades include:
- The Scale Model Hall space has been expanded to give the current selection room to breathe and to make room for more. The primates are now organized by geographic location instead of by multiplying willy by nilly. Baked-in labels make it clear where you are.
- I have doubled the textures of the floorplan into two 2048px textures. One has all of the baked text labels and the other has everything else. How was baking text accomplished? The text are Blender text objects that hover 0.01m over the wall. Light baking simply bakes the text-shaped shadows into the texture. I first used text models but that made the model size grow exponentially.
- The entryway to the Modern Primates part of the Scale Model Hall got an archway and extended wall for better occlusion handling.
- The Burial Chamber entrance got another turn and a narrow doorway into the exhibit for better occlusion handling. Info that was projected on the back wall are now split to each mini wall.
- The Burial Chamber also got some soft blue lighting.
- Floorplan model size slightly trimmed by removing walls and edges that are never seen. I got very familiar with snapping in Blender so I no longer need the infrastructure to keep things aligned.
- Occlusion zones updated to account for the new spaces. Standing in each zone will usually keep on any adjoining zones but render invisible everything else.
- Dynamic lighting model for hands and info buttons got a small tweak. Before, lights flicked on and off as you moved through the museum to keep things lit around you. Now, there is only one light but it moves to follow you based on the occlusion zones.
- Text that is not dynamic got baked in other parts of the museum too so some text objects/draw calls got trimmed from the html. Draw calls have dropped by a handful in general and initial loading feels faster.
- VR hand control issues have reappeared with controls ignoring left thumbstick and all piling into right thumbstick. Current solution is to swap the walking and teleporting hands.
- Rewriting of the Open Education Resource assignments to match the new locations.
- Ground has been broken on the next big exhibit: Human Evolution! This offshoot of Prehistoric Primates is very much under construction but if you look behind the barrier....
Lorises and Lighting Update
1.1.7 (6/14/2021)
- The Kayan slow loris adorbs its way into the Scale Model Hall and into your heart. I went with this species because I'm friends with one of its discoverers, Rachel Munds. Unlike the mandrills, I had a wealth of realistic poses to choose from. I settled on an upside-down hanging pose because just look at it. This model has a few improvements. I used a new version of my basic quadruped mesh that now has marked seams for UV unwrapping. This leaves the UV positions left less to chance and can now follow the contours of the shape more precisely. It works! The UV map is more organized and the consolidation of UV islands means that it's a little easier on rendering.
- I have a modern computer so I can finally do something I've put off: rebake the textures of the museum walls, floor, and ceiling. Since the gorillas and mouse lemur refresh, the lights and shadows of the building have not kept up with the models. With my old iMac a bake of the building texture took two overnight sessions so I put if off for months. With my new PC it now takes... 8 minutes! I also found a way to denoise the texture after baking using the Composition mode in Blender. I used to manually blur the texture in Affinity Photo. The new result looks much better and now there are cool spotlights and shadows to make the recent additions fit the environment better. Check out the angel wings on the trophy!
Mandrills!
- Male and female mandrills take center stage in the Scale Model Hall! After some plainer primates it's time for some primary colors. The mandrill couple shows the extreme sexual dimorphism. While the male mandrill looks fierce, he is depicted starting some grooming on the female, maybe leading to more? This is the first model to use a new base quadruped template based on the old Proconsul. Modeling was fast working off that frame. The Rigify rig is now refined with opposable toes as well as fingers, though these models do not really use that feature. Another new element to the mandrills is the use of blended vertex colors on the rumps. I prefered clearly delineated colors before but the complex shades of the mandrill butts was the perfect place to use some subtle shades. This is also the point where I ran out of creativity in propping up primates to a more visible height and just put them on a box.
- Megaladapis is the latest to get the special edition treatment. It now has more realistic eyes and everything got rotated for a clear view.
- A new A-frame component now waits for artifact and skull tables to load before placing objects upon them. This should remove reloading weirdness.
- PC controls are reverted to swiping to look instead of the first person shooter mouselook. I preferred mouselook for its sheer speed and natural feel for someone who navigated a lot of fluid 3D environments with various weaponry in hand. The implementation takes the mouse away from other uses, though. Swiping is more familiar for WebVR and interfaces like Google Street View. If you want that mouselook, it's just an 'm' key away. The wall instructions even change to reflect the mode you're in.
Chimps, Fossils, and a Trophy
- AnVRopomotron won Education Experience of the Year at the inaugural WebXR Awards! What a huge honor. My prize is a custom trophy model with an NFT of authenticity (will NFTs be a thing? Who knows?). I've put up a replica trophy in the museum, between the starting foyer and the Scale Model Hall. Making the replica was an adventure in baking textures to capture the real time shine in a static image. I don't even know how the text transferred because it was on its own shape in the original model and in the replica it is just there on the main structure. I'm not going to question it and just take the result. Some parts would bake and others wouldn't and when I tweaked the settings it was the other way around. I eventually merged the working parts in a graphics editor. The twist in the column was an accident: I wanted to move the bottom face up but twisted it instead. It looked intriguing so I worked on that. Behold the trophy's shiny glory and thanks to everyone involved with the Awards!
- It's a chimpanzee fest in the museum!
- The main room gets a chimpanzee statue scanned from Austria that was posted to Sketchfab. The piece really captures the scope of the museum and the details are wonderful.
- A male and female common chimpanzee strategize their way into the Scale Model Hall! I had planned chimpanzees for my first model but chimps are very hard to render (male gorilla became my first successful model). I figure it's time to take the challenge on now. Chimp behavior is multi-faceted so I tried to capture the variety of chimp actions. The male is posed in mid-display, which is when a chimp flips out to intimidate and gain status. The female is modeled using a rock to crack a palm nut. Some modeling innovations may make it to older works and will definitely be standard in the future. The eyeballs are now separate models instead of connected to the face. This really helps in changing the gaze without a lot of hassle (my modeling is more for statues rather than animated figures and I have always had eyes face forward so I hadn't taken this step before). Three separate materials were used to get different baked effects: low specularity for fur, medium for skin, and high for wet tissue like eyes and mouth. Behind the scenes I applied a modified Rigify rig for 'easier' posing. It added two weeks to the modeling process to learn Rigify enough but the next model would only take an hour to get to the same result so it really is easier now. I still set the pose and made manual tweaks to fix the geometry.
- Transcript for the visually impaired or other uses is now available at tinyurl.com/anvrotext. I took the HTML file and removed the code to get just the text from around the museum. Then I added descriptions to all exhibits. This brings it up to standard for educational accesibility.
- Experimental first person shooter controls on desktop, using fps-look-controls. A reticle almost straight from the A-Frame tutorial is there for aiming. I like this more familiar control system instead of mouse dragging.
- On desktop, pressing c now crouches to 1 meter. Get some low views on those ground level primates.
- Archicebus in the Grab Lab got a makeover. I was young and inexperienced making the original model and decimated the whole thing to squeeze polygons out. The tail suffered the most. My new goal is to have nice simple meshes so Archicebus got some curves back and a new tail. It has a more typical mammal coloration with a light belly and a dark tail tuft just for a little realistic flair. I also rigified this with a cat model for quick limb and tail posing.
- Grab Lab got the "Mrs. Ples" Austrlopithecus africanus cranium. It itself is an artifact being based on a replica from the mid 20th century.
- Grab Lab also got the "Neo" Homo naledi skull, one of the newest discoveries of our messy family tree.
- I removed the green wall photo borders in the Scale Model Hall. This saves a draw call for each one and the look is now consistent with wall photos in the other exhibits. To be honest, without dedicated border controls, setting them up was a pain.
- Fixed bug with grabbed artifacts going invisible when crossing zones. There was an occlusion class that inadvertently applied to all child objects within.
- Fixed info box weirdness in the Calatrava and Paris burials.
- Various little bug fixes that were actually hotfixed into the previous version. They include a misaligned Grab Lab sign, using the wrong Homo erectus model in the Grab Lab, and an array of typos.