cs428 project 2 repo page

tin can

View on GitHub

Project Overview

Originally, the study was to present on metathesiophobia, the fear of change and the unknown. The main schtick was to have certain objects have the chance of moving or changing their properties on their own whenever they were out of the player’s eyesight (at first by calculating frustrum planes and checking object collisions with the planes using their colliders), but we were unable to translate the original codebase to a VRTK context (likely something to do with having multiple cameras that we were unable to work out, but I’m still unsure to this day).

Instead, the project has been shifted to be a show of ataxophobia, the fear of chaos, disorder, and messiness. The way this was done was fairly on the nose, and could also ne a sort of allegory for a bad/stressful day at work, depending how you want to spin things.


Installation

  1. Notes
    1. For whatever reason, VRTK has trouble compiling its libaries in filepath directories that we either too long or have spaces in them (I assume). It is recommended to clone the git repo into somewhere either with a short filepath, such as the desktop, or to somewhere with no spaces in the filepath.
    2. For the sake of project completion for my sake, I had to make two additional post-deadline pushes to include two items which didn’t get included in the scene or project, for whatever reason. Since we’re presenting what we turned in before the deadline, we need to reset to the SHA1 commit of the last push before 9pm on this last Saturday: 13d61152860ba7c90bf1cf8d59900123f1a51f31.
  2. Installation
    1. Project 3
        1. Simply git clone the repository from https://github.com/gravitas-navi/cs428_p3.git
    2. Project 2
      1. Cloning the directory from git
        1. Latest (Post-Deadline) Project
          1. Simply git clone the repository from https://github.com/gravitas-navi/cs428_p2.git
        2. Project Turned In Before Deadline
          1. Installation
            1. git clone as usual from this repo
              1. https://github.com/gravitas-navi/cs428_p2.git
            2. navigate to repo directory from ternimal
            3. hard reset to the point of the specified SHA1 commit
              1. git reset –hard $(SHA1)
                1. Here, (SHA1) would be replaced with the SHA1 commit number, so the command would be something like:
                  1. git reset –hard $13d61152860ba7c90bf1cf8d59900123f1a51f31
              2. I will also prepare a .unitypackage for convenience’s sake before the project is presented.
          2. Within Unity
            1. Once we have our project open in Unity, we can build out to the Quest headset as follows:
              1. Make sure that:
                1. CameraRigs.UnityXR is enabled
                2. CameraRIgs.SpatialSimulator is disabled
                3. Under Unity build settings, we need to make sure we are building for the Android platform, and to switch platforms if necessary
              2. Plug the Quest headset into your PC, and once your Quest device shows up as a compatible device, hit Build and Run so we build the .apk out to the headset
              3. Put on your headset and controllers, and make sure you have enough space to move around in
              4. click on the application menu (9 dots in a grid on the right of the thin menu) then in the upper right of the big menu click on all Applications, then Unidentified Developers at the bottom of the list and select your application to start it

Usage

Project 3: To your left, there will be a cluster of six cubes, each of which you can target with a trigger pull to enact various effects. the top 3 and bottom first cubes will transport you to various scenes, while the final bottom two cubes will either teleport you to a specified location, or rotate the room, if you are within the Dancing on the Ceiling scene. The cube’s effects are as follows:

  1. Blue: load Mego Playset
  2. Red: Load Dancing on the Ceiling
  3. Gold Peach: Load Land of the Giants
    1. Black: Teleport plaeyr if stuck
    2. ScareCo: Rotate level
  4. Green: Load Project 2 level For the most part, the items in the scene are grabbable and interacible in some way, excluding the tree freshener on the gear machine, and the bouncing ball in the center (although you can still bump into the ball with your physical body instead).

    Under the ramp, you can spawn additional Weighted Companion Cubes from the Aperture Laboratories Vital Apparatus Vent ™ by clicking on the white part of the button switch, in the sam way one would turn off the lights using the light switch by the door.

    Once we’re done with work for the day, we need to clock out of work by clicking the ScareCo cube next to the punch-in machine, and finally be able to exit the premises.

Citation List

  1. Audio
    1. Found
      1. Goodbye (AOL)
        1. https://www.youtube.com/watch?v=F2Z2CklSxM0
      2. InspectorJ - UI Confirmation Alert
        1. https://freesound.org/people/InspectorJ/sounds/403019/
      3. [Dan Heath - Fast Company] Why Change Is So Hard
        1. https://www.youtube.com/watch?v=RpiDWeRN4UA
      4. Bensound - The Elevator Bossa Nova
        1. https://www.bensound.com/royalty-free-music/track/the-elevator-bossa-nova
      5. dbspin - Bang 4
        1. https://freesound.org/people/dbspin/sounds/396553/
      6. jokallset - turning gas off
        1. https://freesound.org/people/jokallset/sounds/395880/
    2. Self-Generated
  2. Models
    1. Found
      1. P3
        1. renderpeople: Manuel Animated 001 Dancing
          1. https://free3d.com/3d-model/manuel-animated-001-dancing-256270.html
        2. renderpeople - Sophia Animated 001 Idling
          1. https://free3d.com/3d-model/sophia-animated-001-idling-130876.html
        3. renderpeople - Nathan Animated 003 Walking
          1. https://free3d.com/3d-model/nathan-animated-003-walking-644277.html
      2. P2
        1. eness3d: uploads_files_146537_Vase_Daum_GM
        2. https://www.cgtrader.com/free-3d-models/furniture/other/vase-daum-gm
        3. Vase Daum GM
      3. xfrog: MagnoliaXsoulangeana_5 (I have no idea why certain models just didn’t get saved with the scene. I remember Unity crashing at some point but I thought I fixed that a while ago.)
        1. https://www.cgtrader.com/free-3d-models/plant/flower/2021-ja11-magnolia-soulangeana-ace1bc0e-61b5-4bbd-a6f5-b9b81c64074c
      4. alutaroma: low_poly_tulip
        1. https://www.cgtrader.com/free-3d-models/plant/flower/low-poly-tulip-free-sample
        2. Low Poly Tulip
      5. MrMobi: weighted_companion_cube
        1. https://sketchfab.com/3d-models/weighted-companion-cube-portal-e3326dbacfb0490b82a7a47dba53961a
        2. Aperture Laboratories Weighted Companion Cube
      6. ducbui290784: uploads_files_1009504_BOWL+VASe
        1. https://www.cgtrader.com/free-3d-models/interior/house/bowl-plant
        2. Bowl Vase Fixture 1
        3. Bowl Vase Fixture 2
      7. nittubawa: blueberry_plant_1
        1. https://www.turbosquid.com/3d-models/blueberry-plant-pot-3d-model-1496537
          1. Blueberry Plant 1
      8. nittubawa: blueberry_pot_2
        1. https://www.turbosquid.com/3d-models/blueberry-plant-pot-3d-model-1496537
          1. Blueberry Pot 2
      9. Germes: razer
        1. https://www.turbosquid.com/3d-models/razer-project-valerie-3d-model-1166390
        2. Razer
      10. chroma3d: fir_tree
      11. https://www.turbosquid.com/3d-models/fir-tree-decorative-object-3d-model-1473904
      12. xfrog: matteucia_1
        1. https://www.turbosquid.com/3d-models/xfrogplants-ostrich-fern–matteuccia-struthiopteris-3d-model-1736107
        2. Matteucia Plant 1
      13. xfrog: matteucia_2
        1. https://www.turbosquid.com/3d-models/xfrogplants-ostrich-fern–matteuccia-struthiopteris-3d-model-1736107
        2. Matteucia Plant 2
      14. xfrog: matteucia_3
        1. https://www.turbosquid.com/3d-models/xfrogplants-ostrich-fern–matteuccia-struthiopteris-3d-model-1736107
        2. Matteucia Plant 3
      15. Javierogo: barber_shop
        1. https://www.turbosquid.com/3d-models/barber-shop-pole-cilindro-3d-1432606
        2. Barber Shop
      16. brownfox: 3D Magical Page Turn (this isn’t in the scene either, even though it’s in the actual models folder. Oh well, it is what it is, I suppose.)
        1. https://www.turbosquid.com/3d-models/3d-magical-page-turn-double-sided-1768192
    2. Self-Generated
      1. p3
        1. pencil
          1. pencil_0
          2. pencil_1
        2. eraser
          1. eraser_0
          2. eraser_1
        3. cell_phone
          1. cell_phone_0
          2. cell_phone_1
        4. paper
          1. paper_0
        5. lugnut
          1. lugnut_0
          2. lugnut_1
        6. beach_ball_0
          1. beach_ball_0_0
        7. beach_ball_1
          1. beach_ball_1_0
          2. beach_ball_1_1
        8. how_would_i_even_retopologize_this_lol
          1. how_would_i_even_retopologize_this_lol_0
          2. how_would_i_even_retopologize_this_lol_1
        9. financial_district_0
          1. financial_district_0
        10. what_would_this_even_be_called
          1. what_would_this_even_be_called_0
          2. what_would_this_even_be_called_1
        11. renderpeople: Manuel Animated 001 Dancing
        12. https://free3d.com/3d-model/manuel-animated-001-dancing-256270.html
        13. renderpeople - Sophia Animated 001 Idling
        14. https://free3d.com/3d-model/sophia-animated-001-idling-130876.html
        15. renderpeople - Nathan Animated 003 Walking
        16. https://free3d.com/3d-model/nathan-animated-003-walking-644277.html
      2. p2
        1. portal_tube
          1. Aperture Laboratories Vital Apparatus Vent
        2. gear_thing
          1. Gear Lamp Thing
        3. lamp
          1. Team Building Lamp
        4. i_have_no_idea_but
          1. i have no idea beach ball thing
        5. flower_pot (not in the scene for some reason along with its plant model, but i’ll leave it be since it’s past deadline)
          1. dirt
        6. work_punch_in_machine
          1. Work Punch In Machine
        7. punch_in_card
          1. (will spawn in) Work Punch In Card
        8. spawn_button
          1. Weighted Companion Cube Spawning Device
        9. the rest of the supershapes within the supershapes folder i ended up not using
    3. Interactible Objects
      1. P3
      2. pencil
        1. pencil_0
        2. pencil_1
      3. eraser
        1. eraser_0
        2. eraser_1
      4. cell_phone
        1. cell_phone_0
        2. cell_phone_1
      5. paper
        1. paper_0
      6. lugnut
        1. lugnut_0
        2. lugnut_1
      7. beach_ball_0
        1. beach_ball_0_0
      8. beach_ball_1
        1. beach_ball_1_0
        2. beach_ball_1_1
      9. how_would_i_even_retopologize_this_lol
        1. how_would_i_even_retopologize_this_lol_0
        2. how_would_i_even_retopologize_this_lol_1
      10. financial_district_0
        1. financial_district_0
      11. what_would_this_even_be_called
        1. what_would_this_even_be_called_0
        2. what_would_this_even_be_called_1
      12. P2
        1. Grabbable/Droppable
        2. weighted_companion_cube
          1. Weighted Companion Cube Interactible
        3. blueberry_plant_1
          1. Blueberry Plant 1 Interactible
        4. blueberry_pot_2
          1. Blueberry Pot 2 Interactible
        5. razer
          1. Razer Laptop Interactible
        6. i_have_no_idea_but
          1. (well, it’s supposed to be. You can still bump it around with physics and your physical body, however.)
          2. i_have_no_idea_but_bumpable
        7. matteucia_struthiopteris_1
          1. Matteucia Plant 1
        8. matteucia_struthiopteris_2
          1. Matteucia Plant 2
        9. matteucia_struthiopteris_3
          1. Matteucia Plant 3
        10. suspended_ceiling_part_3
          1. Falling Support Interactible Angle 1
          2. Falling Support Interactible Angle 2
          3. Falling Support Interactible Angle 3
        11. climbable_ladder
        12. Vase_Daum_GM
          1. Vase Daum Gm Interactible
      13. Clickable 12. scareco_clock_out_cube
        1. Work Punch_in_machine Clock_out_apparatus
          1. spawn_button
        2. Aperture Laboratories Vital Apparatus Vent Device_Interactible

Discussion

P3: The various scenes shift player perspective in some very extreme ways. To begin with the Mego Playset scene, taking players out of the actual house and turning what was originally something you stood and walked around in at room scale, to something of such a smaller scale shifts my perception of the space from a room-scale office to almost something of a toy I might have played with as a child. This was the obvious intent of the project, but having to literally reach inside what was once so much larger than you would (if this were a serious, legitimate therapy experience) make the “office” feeling of things seem much less of a factor. It gives off the feeling of having much higher level of power over being to affect the world around you, and be able to have the experience revolve much more around what you will it to do. I could very easily see something like this being useful in a therapy setting, in being able to give users power and control back over a traumatic part of their lives being modelled out for them in VR space, and having them literally be able to take full control of their experience, and be able to reclaim said experience or trauma, in a sense.

With the Dancing on the Ceiling scene, you are in the same room we have always been in, but you being to full-on tilt the entire space around you does fundamentally break the usual sense of physics and equilibrium one usually has in a virtual space like this. The “floor” could end up becoming sort of whatever you wish it to be, and Especially with the way I ended up implementing it, the wt almost looks moreso likt the user is being swopped in an arc towards whatever new surface. I can, hwoever, also easily see how this would make someone sick or queasy, however, depending on how intense the rotating motions become. Still, being able to rotate the world itself instead of simply yourself does bring about some interesting philosophical questions about the differences between the two ways of orienting yourself (and for that matter, somewhat makes me wonder and wish whether Super Monkey Ball VR could ever be a feasible thing. The potential…).

Lastly, the Land of the Giants scene, the sense of scale is entirely skewed from the original scene, and shows some of the more interesting ptential of having the liberty of not having to deal with real world physics, scale, and space restrictions. One could easily imagine a Disney or Six Flags being able to create these huge, sparawling theme parks or spaces that would normally be hugely impractical or impossible in real life, and be able to create entirely new headspaces and experiences with it. As for me personally, the sense of scale honestly messed with me at first, and there was a a bit of a disconnect once I started wrestling with the fact that I was placing myself in the mindframe of such a small person in a huge world…while also being a fairly tall and large person in the real world at the same time. I wouldn’t say it was immersion breaking, but I also don’t have a great frame of reference for being in such a vulnerable-feeling position, like one would be in something like Land of the Giants. Although I suppose that is also part of the point of something like this, and this does make me excited for the future of, say, making huge virtual concert spaces, or working with flat out impossible or non-euclidean geometry in a huge world space, such as an Antichamber or a Hyperbolica (a game about exploring a world of non-euclidean geometry I found out about a few years ago on youtube, by one Mr. CodeParade. Seems like a pretty cool deal, but this is completely tangential to the original topic.)

P2: While I haven’t gotten much of a chance to test this project with the headset as a whole, I can at least explain my experience with the limited headset testing I did have vs my use of the spatial simulator object in the project.

For one thing, the sense of scale was, at least personally, experienced much differently in the heasdset vs in-engine. Within Unity, it honestly felt like walking through any regular room in a video game, but with teleportation involved and somewhat clunkier controls to grab and interact with things. The viewing perspective seems to be much different as well between the spatial simulator vs actual headset use. I can’t necessarily explain how or why, but it seemed much easier to grab items when using the headset and controllers this VRTK framework was actually meant to work with. For example, grabbing the bouncing balls in the scene is trivial with the headset and controllers, and challenging to near-impossible to consistently do with the spatial simulator controller models. Very likely this is due to one being able to actually place the controllers where they want and need to in the world space, versus the spatial simulator controller models being at a fixed height.

The headset was, in contrast, a much smoother experience to work with physically and visually, with objects appearing much more “at scale” and shedding the video game-y feeling I was describing earlier. However, with this, it becomes much more paramount to keep frame rates and smoothness in check, since at that point headset -based experiences can be very smooth, but they also have to be smooth along with it, lest the user end up sick or worse. Even the differences between Stationary and Room Scale mode were noticeable in some cases. When I was testing in Stationary mode, since you’re, well, stationary, it does become quite obtuse to turn yourself around, and I found myself having to do a sort of jig where I would teleport to the general level of where I wanted to be, crane my head as much as I could towards the direction of where I wanted to go, teleport, and repeat. I didn’t have much of a chance to rest at room scale, but I assume it would be much easier to move around a room on my feet, rather than being staitonary in a chair.