jacob_leiken@brown.edu, 714-398-0537
Experience with UI/UX including non-traditional interfaces (i.e. Amazon Alexa), taken CS32 and CS33, experience with game design, worked at IT Service Center for a year
Interested in social VR experiences
These links hold most of the code I've done this semester. Feel free to check them out and use them for your own projects!
https://github.com/jleiken/MinVR-Labyrinth
1/25, 3 - 4 PM: Investigated HMDs and created journal page
1/26, 12 - 1 PM: Attended Google tech talk on WebXR
1/27, 12 - 2 PM: Read three.ar.js documentation and examples, researching for project for Hack@Brown
1/31, 12 - 1 PM: Attended YURT programming lesson
1/31, 3 - 4 PM, 9 - 11 PM: Installed Unity, found guides, populating the Resources page for Unity. Worked through Unity "Getting Started" materials
2/4, 5 - 8 PM: Installed Unreal (quite easily), found and started tutorials
2/5, 12 - 1 PM, 3 - 5 PM, 7 - 8 PM: Followed Unreal getting started guide, added third-person player with animations
2/7, 12 - 1 PM: Attended second YURT lesson
2/7 7 - 9 PM, 2/8 3 - 6 PM, 2/9 3 - 5 PM: Finished Unity "Roll a Ball" Tutorial and added customization
2/11 7-9 PM: Update this page, Unity and Unreal manuscript pages
2/14 12-2 PM: Attended third YURT lesson, tried to get MinVR working
2/14 8-10 PM: More work on MinVR, thought about "Hello World" (HW) ideas
2/14-2/21 8 hours: Continued troubleshooting of MinVR with Tom and on my own (finally realized I had impartially uninstalled XQuartz, which was causing problems)
2/20 4-6 PM: Decided on HW - labyrinth ball game (the user will tilt a platform on which a ball rolls around. The goal is to get the ball in a whole at the end of the labyrinth. Each run should generate the labyrinth randomly. This will lead to interesting challenges from tilting, physics, etc.
2/21 8 PM-12 AM: Started HW for Unity. Made platform and rotation - still bugs - posted on GitHub at https://github.com/jleiken/Unity-Labyrinth/
2/24-2/25 10 hrs: Finished HW for Unity! It's a playable game on Google Cardboard, although there's no way to restart the game yet. I see this as a reach goal, since it should be a relatively minor addition. I have not started reviews or guides, though, so I am slightly behind in that respect.
2/26 2-6 PM: More minor work polishing HW for Unity
2/28 7-12 PM: Started HW for MinVR, posted on GitHub at https://github.com/jleiken/MinVR-Labyrinth - it is much harder than Unity
3/2 9-12 PM: Continued HW for MinVR, made very little progress
3/5 11 PM-1 AM: Worked on documentation
3/6 3-4 PM: Linked, formatted manuscript pages
3/7 8-10 PM: Made some progress on HW for MinVR. World generation is now complete, but textures won't load
3/11 6-11 PM: Finished HW for Unity because I'm a perfectionist so it now can be restarted and dims in and out of levels. I also struggled with git for practically 2 hours, struggling to upload files that were larger than Github's file size quota. This is actually a significant struggle worth mentioning in a tutorial - projects made with Unity can include very large files.
3/12 2-8 PM: Made plan for the rest of the semester.
3/14 5-10 PM: Got HW for MinVR correctly generating the whole world
3/17 2-3 PM: Added "gravity" (that never ends) to HW for MinVR
3/19 11-4 PM: Reviewed Amadeo's journal and manuscript additions for class on 3/20. Got distracted so I then read most people's work on the wiki. It's pretty awesome!
3/21 1-4 PM: Worked on getting fake hand/controller tracking for MinVR
Spring Break 20 hrs: Worked on HW for MinVR
4/4 12-3 PM: YURT madness. For the first time, building with no issues on YURT and my computer
4/8 6-10 PM: Worked on adding physics to HW for MinVR
4/9 12-1 PM: Finally saw HW for MinVR running on YURT, I can now access it whenever I need through the calendar
4/10 5-7 PM: Debugged in the YURT
4/11 7-8 PM: Recorded YURT activity, refined some user input
4/14 2-5 PM: Tried to make physics more accurate
4/16 2-4 PM: Continued work on physics, still no improvements. At this point I think I'll call it a viable proof-of-concept and move on to documentation.
4/18 8:30-10:30 PM: Worked on AR tutorials. A-Frame is legit and I think could be ported into the YURT, but nobody tell Tom because he'll have me do it.
4/18 10:30-12 PM: Fixed a backwards rotation bug David found in class and added comments to all my MinVR code. It's pretty satisfying to wrap this up, even if the physics aren't good.
4/19 12-2:30 PM: I got really excited about A-Frame and made the Labyrinth game again, in it. The whole board set up and gravity took me this time, which is way less than either of the other two technologies. Partly I think that's because I'm much more experienced with graphics now, but also partly because it's SO EASY.
4/21 4-7 PM: Progress on HW for A-Frame. I was going to write a tutorial for MinVR, but Ruiqi did a much better job than I could have (I think he actually knows how to do graphics programming). I just added Mac and Linux instructions to it instead, which ended up being pretty different.
4/23 5-9 PM: Updated this page a little bit and finished HW for A-Frame. Wow it's so much easier. Still has quirks though - the physics system is resting my ball way too high above the plane for some reason.
4/24 7-10:30 PM: Worked more with Ruiqi on the MinVR tutorial. It's now ready to go!
4/28 2-6 PM: Worked through tutorials I've missed from class and added some things to the AFrame, Unity and MinVR pages
5/1 3-5 PM: More work on wiki, my own Unity tutorial
5/5 12-3 PM: Worked on slides for presentation, read Ankita and Linda's article, and updated the site and journal a bit
5/11-5/12 1-5 PM: Final changes to wiki!
Also add 4 hours to this count for the weeks I went to the YURT lunches that I didn't log here.
Unity Rolling Ball example
Under VR Development Software > Unity
Unreal World-building and 3rd person player examples
Under VR Development Software > Unreal
Significantly greater difficulty than Unity project, regrettably
Compounded by engine that is harder to use
Learning Unreal
Learning Unity
Attending YURT programming classes led by Tom
I want to compare programming for Unity and the YURT. It will go in the Comparisons tab > VR Development Software. I think my report will be equally one-sided in favor of Unity. The convenience of a GUI is hard to understate. In addition, Unity has a lot of features that make it very easy to make a game. It is also really easy to install. I've already tried and failed to install MinVR. Programming for the YURT is going to be a lot more programming, no matter what. To compare them, I will make a "Hello World" project that works on both, and write a guide/comparison while doing it. The examples can go on their respective manuscript pages, while the comparison might have to go on a new comparisons page.
Deliverables
Comprehensive plan for the month (here)
Activities
Create progress report/plan
Value: Preparation for the class
Time: 2 hours
Deliverables
Decide on a reasonable "Hello World" (HW) project by looking at MinVR example code and Unity projects. This will be fairly difficult due to the large difference in mediums
Activities
Plan for HW
Value: Preparation for the class, coming month
Time: 4 hours
Deliverables
HW for Unity
Activities
Star work on HW for Unity
Value: Learning Unity, creating time tables and feedback
Time: 8 hours
Deliverables
HW for Unity
Activities
Finish HW for Unity
Value: Finishing deliverables, time tables and feedback
Time: 4 hours
Deliverables
HW for YURT
Activities
Start work on HW for YURT
Value: Learning MinVR, C++, creating time tables and feedback
Time: 4 hours
Deliverables
HW for YURT
Comparison of MinVR and Unity
Activities
Finish HW for YURT
Value: Finishing deliverables, time tables and feedback
Time: 6 hours
Write and compile tables comparing MinVR and Unity
Value: Completes a comparison of two technologies, potential addition to the paper
Time: 2 hours
HW for Unity tutorial: not done
Location: sub-page in my journal, created with some content
Activities
Created HW for Unity. This is done and in good shape - people can play it. However there are no menus, so the game can't be restarted without quitting the app. Ultimately I deemed this a secondary feature, and wanted to move on to documentation and MinVR.
The tutorial is going to be based off of the Roll-a-Ball tutorial provided by Unity, but I have made very little progress in notes (on paper, not digital)
HW for MinVR tutorial/code walk-through: not done, and far from it, as code isn't done
Location: sub-page in my journal, created with no content
Activities
Started HW for MinVR. It is significantly more difficult than I expected, so I'm having a lot of difficulty making progress. This will probably occupy a significant portion of my semester, if we deem it to be a valuable exercise.
Since I have made so little progress with my code, any tutorial is far from happening.
Comparison of programming for Unity and MinVR, qualitative and quantitative: rough preliminary drafts of both are done
Location: Manuscript > Comparisons > VR Development Software, rough draft/data collection done
Activities
Programming both HW, described above.
Writing comparisons is much easier than tutorials, so while I probably need more detail before publishing, I do think what I put on the manuscript is helpful.
Hours are logged in the Activity Log section above; the section under consideration encompasses activities from 2/14 to 3/5.
Activities are explicitly and clearly related to deliverables: 4
Deliverables are described and attributed in wiki or manuscript: 3
Items from in-class google sheet of experimental data are in wiki or manuscript: 2
Report states total amount of time: 4
Total time is appropriate: 5
HW in Unity was easier than I expected, but it still took longer than I anticipated. I'm quite nervous about HW in MinVR, because my progress so far has been painfully slow. While I wanted to focus for a while after this on documentation, since this class is about software review, not development, I could easily sink many more hours into MinVR. I wonder if time spent on that will be relevant to the paper. I didn't actually believe I would finish any documentation by this deadline, so I'm a bit ahead of my mental (not typed) schedule in that respect. I'm going to need to spend a couple of hours actually writing a Unity tutorial, and then I can continue with MinVR. I'm thinking now that this HW for MinVR could easily take the rest of the semester, so I need to decide with David if that's a worthwhile way to spend my time.
Deliverables
Comprehensive plan for the month (here)
Activities
Create progress report/plan
Value: Preparation for the class
Time: 2 hours
Deliverables
HW for MinVR accepting user input
Activities
Work on HW for MinVR
Value: Learning MinVR, C++, creating time tables and feedback
Time: 7 hours
Deliverables
HW for MinVR limits how user can move table
Activities
Work on HW for MinVR
Value: Learning MinVR, C++, creating time tables and feedback
Time: 3 hours
Deliverables
HW for MinVR has some conception of physics
Activities
Work on HW for MinVR
Value: Learning MinVR, C++, creating time tables and feedback
Time: 7 hours
Deliverables
HW for MinVR is playable, physics are fairly refined
Activities
Work on HW for MinVR, test in YURT
Value: Learning MinVR, C++, creating time tables and feedback
Time: 3 hours
Deliverables
HW for MinVR is mostly polished, can be played in YURT
Activities
Work on HW for MinVR, test in YURT
Value: Learning MinVR, C++, creating time tables and feedback
Time: 7 hours
Deliverables
Comparisons of MinVR and Unity
Activities
Writing comparisons
Value: Valuable addition the manuscript
Time: 3 hours
Deliverables
Complete Unity guide
Activities
Writing guide, taking screen shots and maybe redoing rolling ball for this purpose (not actually a difficult prospect)
Value: A guide to more complex Unity projects that should be a better starting point for people that want to use unity to make VR games
Time: 5 hours
Deliverables
Annotated HW for MinVR code
Activities
Comment code so it's clear what everything does
Value: A more complex example for MinVR would REALLY help people who want to start using it
Time: 3 hours
Deliverables
Guide to running things in the YURT and/or improvements to my guides based on feedback from other students
Activities
Writing or interacting with other students
Value: A total guide to how to program for and use the YURT and/or improvements to the previous deliverables I've mentioned
Time: 8 hours
Deliverables
Whatever else I didn't finish
Activities
I figure I won't hit all of these deadlines exactly, so I want to give myself a buffer day
Value: Buffer
Time: ? hours