Haunted Hotel Update

This week our group met on Saturday to go over what we need to do for the next week.

Jerry rebaked the lighting because we wanted to delete certain objects that we want to make interactive (Skeleton on the bike, a few chairs, the chandelier.)

Jerry H. has the programming complete for the game to run.  He was able to get the text up in front of the user so they know how many ghosts they have caught and still need to catch.

The stairs were giving us trouble because in the baked version there was obviously no gravity, so we made a simple sketchup model that will allow for the gravity to work in the space so that the user can get upstairs.

We have been working on inserting sound affects when people walk by certain objects, for example and chair makes a noise when you walk by it, the chandelier glass shatters when you walk by it, etc…

When the user opens the bedroom door with the skeleton on the bike, the bike will come towards the user with a bicycle bell ringing.

Hasti and Natalie spent time looking up some of these sound effects, and Jerry H. also found some.  We have been having trouble finding unique ones for each ghost, but hopefully we find some more effects for the ghosts.

Jerry has also started on the PowerPoint, and I hope to be able to help him with it on Wednesday or Thursday.

This week Jerry H will put the finishing touches on the program with the added sound effects, and then we will be ready to test it out in the CAVE.

Overall, the hotel design is actually pretty creepy and the sound effects add to the eeriness!  I think we are all very pleased!



The Jasper: Week 4 Update


This week we started to bake lighting and did more FBX about ghosts when they were caught! We had some questions how to export animations of explosions into FBX. But we also have B plan if it does not work. We added lighting effects in 3D Studio Max in order to create scaring and creepy atmosphere in our hotel.

Bake Lighting of 2F

Bake lighting of 1F

Bake Lighting of Landscape

FBX animation

 Link: 001~4 001~5

 Link: 002~4

 Link: 003~4 003~5

  Link: 005~3

Update from Hasti:

I finished the landscape and outside of the Hotel.

After merging the whole models (restaurant, lobby, rooms and landscape), the final file became too big because of using so many textures and material after adding the details. This data was stored in the SketchUp file and caused the slow work loading. So, we purged our file as following steps to delete all unnecessary textures to make it run faster:

  1. Click “Window” > “Model Info.” The Model Info dialog box will open.
  2. Click “Statistics” > “Purge Unused.”

Updates from Jerry H:

We have a solid framework as far as game engine and base classes to create various ghosts and monsters. The Paranormal class, which serves as the base class for all other specialty creepy things, is now ready to interact, showing the paranormal in three states: “hidden” (as a static object), “discovered” (static, or animation through either programming or FBX), and “captured” (simply disappear, or animation through programming/FBX). It’s very easy to extend the class and inject different programmatic animations; I’ve created a “ghost” class that hovers during the discovered state.

The model as a whole is really really big—upward of 189Mb—and has been causing Sketchup to crash. Natalie has helped me create a simplified version of the hotel, in which rooms are represented by simple blocks, so that we can export it to get the coordinates. Once all the OSG files with lighting baked in are ready, I’ll try to put the hotel back together.

By Saturday I was trying to display text in the CAVE but I’ve no luck. I can attach a mesh (e.g. a sphere) to a fixed position in front of the user0 entity, so that the user will always see it, but I just can’t get the text to show. Help??

Simple FBX files work fairly well in the CAVE. Jerry C and I (haha, Jerry x 2) discovered that FBX coming out of 3DS sometimes may get turned in a funny angle; this is due to a “Y-up” or “Z-up” option when exporting. I’ve extended Kevin’s Animation class to allow easy pre-scaling and pre-rotation when loading an animation file; feel free to grab it if you need.

As for the game interaction, originally I really hope to work with Wii mote and Kinect, but practically we might just not be able to get there because of time. However, if any of the other teams have had success in connecting with the Wii fit board, please let me know—the library to call Wii board and Wii mote are the same, and maybe I can bounce off your code.

The Jasper: Week 3 Update


Hi! I finished the materials of restaurant. I also did some animations of ghosts. We also have put all our models in one file. We are going to finish some details in the future.

Scaring Restaurant:

Ghosts animations:

I will export them as FBX and test them in CAVE next week. I hope them works and we can put them everywhere in our project.

The link:

001~1      002~1     003~1     004~1     005~1

The ghost preview:


Update from Natalie:

This past week I worked on messing up my model to make it less perfect and more cluttered and messy.  Jerry C just showed me how to create a wall paper texture in photoshop to add some dirt and blood to the walls, so that will be the last thing to add for upstairs to make it more spooky.  I have also modeled a door, shower curtain, and dresser so that Jerry H can begin to play with that animated programing.

Here are some pictures of the upstairs…

Updates from Jerry H:

  • With help from Kevin the instructor I’m getting the foundation of the code settled. Much of our interactive objects will be inherited from the UW in-house lel_common code.
  • I’ve created a door object that will open and close upon interaction. A finding that is relevant for modeling interactive objects:
    • Parts that are moving must be its own component. For example, the actual door must be separated from the door frame and the hinge.
    • Where the moving part is within the component itself is very important. Specifically, if the object is rotating, the rotating axis/point must be (0,0,0) within the component. For example, the point where a door rotates on should be (0,0,0) within the component.
  • We have also checked that FBX animation files should work very well in the CAVE.


Updates from Hasti:

  • I’ve finished the modelling and details of the lobby.

  • I am working on modeling the outside of the Jasper and landscape design. I’ve built a  cemetery in the back side of the building (image below):

  • I am also working on the exterior design of the Hotel and I hope to finish it by Thursday.
  • I found the 3D animated model of a spider that I think it would be interesting to add it in our haunted hotel.

– Here are the 3D models of the spider:

– I’ve also rendered this animation (the link below):








The Jasper: Week 2 Update

Our haunted hotel is slowly emerging from the ether. New this week:

Natalie: I have begun the design of the bedrooms, and decided to go with just two different layouts because of time. I am trying to implement an old, dingy feeling with the use of multiple patterns in fabric, wallpaper, and rugs. I also found some old toilets and a very dirty looking tub that I used to go along with this idea. I still have a ways to go on the model to make it a bit more freaky and scary, but I have a good start.

I also found this skeleton on a bicycle in the 3D Sketchup Warehouse (weird I know), but I thought it would be cool if the skeleton could ride the bike towards the user when they open the door to the bedroom, do you think this is possible? If anything the group could just move forward toward the door, it wouldn’t have to look like the skeleton was peddling or anything.

Bedroom model-April 14-1

Bedroom model as of April 14 (1)

Bedroom model-April 14-2

Bedroom model (2) as of April 14

Bedroom model-April 14-3

Bedroom model (3) as of April 14

Jerry H: With trouble accessing the lab via VPN, I have started writing up an overall design with the game engine.

  • A singleton class HouseEngine keeps track of overall game status (time elapsed; array of Ghost objects; number of ghosts caught; other stats related to game playing).
  • A Paranormal class serves as the base class to all instances of ghosts/monsters/creepy-crawlies to provide similar behavior.
    • At initialization, Paranormal class stores the OBJ file of the paranormal before and after capture.
    • For animation during capture, Paranormal class will either play an FBX file or perform animation programmatically. For paranormals that use programmatic animation, I may create a subclass to provide animation. E.g. A Ghost class provides the animation of a bedsheet-like ghost enlarging from its original position toward the user.
    • Paranormal class will detect user entity by implementing OnProximity().
    • Paranormal class will also keep track of whether it has already been caught.
    • Programmers: Your input appreciated here… To simplify the interactive process, I may consider the ghost and the object with which it is associated to be modeled in the same obj and handled logically within the same Paranormal class. For example, a Paranormal instance may hold both a ghost and the bed it’s hiding under; this way instead of having a separate class to handle the bed’s interaction/view state, it’ll just be one object to code.
  • Door class to provide interaction of opening and closing.
    • Implement OnProximity() to detect the user entity, and automatically plays the open animation when user approaches.

To do for this week: gain access through VPN; flesh out pseudocode.

Hasti: I have done modeling the lobby so far and will continue to add more materials, wall paper, fire and details.

The Jasper-Lobby 1

The Jasper-Lobby 2

Jerry C: This week, I did some modelings of our restaurant. I will comtinue to do more about materials, details and ghosts.

The Jasper-Restaurant 1

The Jasper-Restaurant 2

The Jasper: A Haunted Hotel

The Jasper-A Haunted Hotel

The Jasper-A Haunted Hotel

The terrible sight of a haunted hotel; photo by George Pau.

Team Jasper

Jerry Chen
Natalie Flunker
Jerry Hui
Hasti Mirkia

How would you like to be the paranormal hero, who will rid an old hotel of all its unwelcomed ghostly guests?

We are building The Jasper, a haunted hotel. There will be at least four rooms plus a front garden in which players can freely explore. Different architectural and period designs are featured in the rooms–initial choices are Gothic, Victorian, Baroque, and neo-Classical. Ghosts are hiding in different rooms. To win the game, players will have to find all the ghosts and catch them all.

To begin conceptualizing the Jasper, bubble diagrams help us visualize the relationships between various environments of the Jasper such as lobby, restaurant and rooms and also explore multiple alternatives of layouts.

The Jasper- 1/F

Bobble diagram of the first floor by Hasti

The Jasper- 2/F

Bobble diagram of the second floor by Hasti

User experience

The Jasper can accommodate more than one player. Only one player will be navigating movements, and have the proper head tracking.

Players will begin in the front garden of The Jasper. They can freely explore the environment, using the direction button on the Wii-mote or nunchuck. They will see a counter on top of the screen, indicating the number of ghosts that are caught, and the total number of ghosts in the hotel.

Ghosts will occupy different rooms, and are mostly hidden until provoked. For example, a ghost will be hiding under the bed in one of the bedrooms upstairs; maybe a corner of the ghost or the glowing eyes of the ghost will give it away, and the players (any one of the players) can then use a voice command such as “check under the bed” to drive the ghost out of its hiding place. If users try to check places that have no ghost, a narrator will respond to indicate there are no ghost (“I don’t think there’s anything there.”; there will be at least 3 different responses to provide variety). Then the players can catch the ghost, either by a voice command (“CATCH THAT GHOST!”) or by clicking a button on the Wii-mote/nunchuck.

Here are some ghosts modeled by Jerry C:

Ghost models by Jerry C

Due to time constraints, we don’t have a fixed way to bring the game to a close. However, if development time allows, we may introduce extra challenges such as a time limit to find all ghosts.


The Jasper will use head tracker, Wii-mote (and/or nunchuck), and Kinect (for voice recognition).

Timeline and contingency

For contingency, we may reduce the number of rooms in the hotel. We may also simplify animations (for example, less detailed animation for the ghosts). We may also simplify interaction from voice recognition to only button clicks on Wiimote.

Our project planning:

By 4/12: Floor plan complete, basic animation scripting
By 4/19: Most rooms modeled, begin modeling interactive objects, Kinect and Wii control scripts
By 4/26: Combine all rooms into a single model, house exterior, preliminary testing on single wall
By 5/3: Testing in CAVE
By 5/10: Calibration, presentation

Our optimistic estimation of tasks and progress. Definitely subject to change.
Purple: Natalie
Green: Hasti
Brown: Jerry C
Blue: Jerry H
Yellow: All