cs428 project 2 repo page

tin can

View on GitHub

Project Overview

The original idea 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 the coding monkeys were unable to translate the original code framework to a VRTK context (likely something to do with having multiple cameras that we were unable to work out their operation scheme, but we are still unsure to this day. This is brand-spanking new equipment, after all.).

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 be a sort of allegory for a bad/stressful day at work, depending how you want to spin things. This space would help people deal with the their fear of chaos by putting them directly in the middle of a space enveloped in chaos, and forcing them to see that while messy, it’s not entirely a bad thing (or at least not hyper-debilitating) to deal with chaos and disorder, and that our emotions and responses can be moderated and turned around in a positive manner for the affected parties involved.

-ScareCo Industries


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. 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

For the most part, the itens 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. eness3d: uploads_files_146537_Vase_Daum_GM
        1. https://www.cgtrader.com/free-3d-models/furniture/other/vase-daum-gm
        2. Vase Daum GM
      2. 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
      3. alutaroma: low_poly_tulip
        1. https://www.cgtrader.com/free-3d-models/plant/flower/low-poly-tulip-free-sample
        2. Low Poly Tulip
      4. MrMobi: weighted_companion_cube
        1. https://sketchfab.com/3d-models/weighted-companion-cube-portal-e3326dbacfb0490b82a7a47dba53961a
        2. Aperture Laboratories Weighted Companion Cube
      5. 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
      6. nittubawa: blueberry_plant_1
        1. https://www.turbosquid.com/3d-models/blueberry-plant-pot-3d-model-1496537
          1. Blueberry Plant 1
      7. nittubawa: blueberry_pot_2
        1. https://www.turbosquid.com/3d-models/blueberry-plant-pot-3d-model-1496537
          1. Blueberry Pot 2
      8. Germes: razer
        1. https://www.turbosquid.com/3d-models/razer-project-valerie-3d-model-1166390
        2. Razer
      9. chroma3d: fir_tree
      10. https://www.turbosquid.com/3d-models/fir-tree-decorative-object-3d-model-1473904
      11. xfrog: matteucia_1
        1. https://www.turbosquid.com/3d-models/xfrogplants-ostrich-fern–matteuccia-struthiopteris-3d-model-1736107
        2. Matteucia Plant 1
      12. xfrog: matteucia_2
        1. https://www.turbosquid.com/3d-models/xfrogplants-ostrich-fern–matteuccia-struthiopteris-3d-model-1736107
        2. Matteucia Plant 2
      13. xfrog: matteucia_3
        1. https://www.turbosquid.com/3d-models/xfrogplants-ostrich-fern–matteuccia-struthiopteris-3d-model-1736107
        2. Matteucia Plant 3
      14. Javierogo: barber_shop
        1. https://www.turbosquid.com/3d-models/barber-shop-pole-cilindro-3d-1432606
        2. Barber Shop
      15. 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. 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. Grabbable/Droppable
        1. weighted_companion_cube
          1. Weighted Companion Cube Interactible
        2. blueberry_plant_1
          1. Blueberry Plant 1 Interactible
        3. blueberry_pot_2
          1. Blueberry Pot 2 Interactible
        4. razer
          1. Razer Laptop Interactible
        5. 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
        6. matteucia_struthiopteris_1
          1. Matteucia Plant 1
        7. matteucia_struthiopteris_2
          1. Matteucia Plant 2
        8. matteucia_struthiopteris_3
          1. Matteucia Plant 3
        9. suspended_ceiling_part_3
          1. Falling Support Interactible Angle 1
          2. Falling Support Interactible Angle 2
          3. Falling Support Interactible Angle 3
        10. climbable_ladder
        11. Vase_Daum_GM
          1. Vase Daum Gm Interactible
      2. Clickable
        1. scareco_clock_out_cube
          1. Work Punch_in_machine Clock_out_apparatus
        2. spawn_button
          1. Aperture Laboratories Vital Apparatus Vent Device_Interactible

Video Documentation

ScareCo Industries Ataxophobia Rehabilitation Center


Discussion

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. Much of the difference in interaction comes mainly from the range of movement (between stationary and room scale modes), and general immersion and sense of scale of the room and the objects themselves, comparing between the spatial simulator and the true headset and controller experience. It seemed like interactivity is also much different, with some concessions having to be made when using the Unity spatial simulator (mostly with ease or difficulty of grabbing objects, and the overall clunkiness of moving around with the spatial simulator controls.)

For one thing, the sense of scale was, at least personally, experienced much differently in the headset 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. Using the spatial simulator reminded me very much of old-school video game tank controls, where one has to stop, and manually rotate in the direction they want to move forward to next. This experience was very similar in the headset/controller stationary mode as well.

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 stationary in a chair.