Kevin Dackow journal
I'm a sophomore at Brown pursuing an Sc.B. in Computer Science. I'm particularly interested in computer systems, security, and networking.
Final Report
Deliverables:
Software (in-depth reports with links):
I evaluated each of these pieces of software using a custom-built template to allow for comparative analysis of similar software. The main points of evaluating were accessibility to users of different skill levels and applicability of the software to different fields of study.
Explored the Game engine to determine its VR readiness and usability (or lack thereof)
Built a VR demo and tutorial using the engine
Built a tutorial for rendering a given Lumberyard tutorial into VR
Tested the software across Operating Systems to determine its cross-platform compatibility
Tried various demos to varying levels of success
Explored the software's power and ease of use
Attempted to render into VR and explored its potential for growth
Built VR worlds and evaluated the engine's ease of use and accessibility
Software (exploratory):
This software I did not write up large reports about, but instead played around with and explored
Unity
I corroborated the report given here, about the engine's ease of use and accessibility.
MinVR
Baby Scene Graph
Misc:
I built this template so that it could be used across the Wiki to provide a standardized way of displaying information about the power, accessibility, and usability of software of all descriptions.
General Research
Especially in the beginning of the semester, I spent time reading newspaper articles, white papers, etc. to explore the applications of VR
I also generally researched which software to pursue
Course Logistics
This was all of the other material that could not fit into any categories, e.g. typing this report up, editing the journal, etc.
Time spent on coursework: 137.5 hours
Note: For detailed time breakdowns, see the journal, but to make it easier to read I have divided the course into three main sections with the major content for each time block in parentheses
Before Spring Break (research, Cryengine, Lumberyard): 66 hours
After Spring Break: (Omegalib, Openspace, WorldViz): 58.5 hours
End of Class: (Tidying up, TODOs, prep for presentation, etc.) 13 hours
Total Time: 137.5 hours
Activity Log
End of Class: Total = 13 hours
May 13th 1pm-6pm:
Did final update of journal, prepared demos for the VR Fair tomorrow, produced poster for presentation, finished and sent Prof. final report
May 12th 3pm-8pm:
Worked on tidying up journal, finishing up tutorials/reviews, and fixing TODOs
May 2nd: 4pm - 7pm:
Worked on updating journal info, tidying up pages, writing up tutorials, and in general cleaning up my journal and related info for the end of class.
After Spring Break: Total = 58.5 hours
May 1st: 12pm - 5pm, 7-8pm:
Worked in graphics lab to try and get OpenSpace rendering into VR
Sent Prof. Laidlaw videos for in class discussion
April 30th: 10am - 11am, 3pm - 7pm:
Updated journal and contacted Prof. Laidlaw about logistics for the final project/presentation
Wrote up goals for the rest of the week to meet the deadlines
Worked on WorldViz installation and played with tutorials and VR readiness
April 26th: 12pm - 4pm:
Worked more on Vizard to explore creating my own projects without tutorial help
April 24th: 12pm - 5pm:
Began work on WorldViz - specifically Vizard
Downloaded and setup on my local machine
Did "Getting your feet wet" beginner's tutorial
It was shockingly easy to get setup.
April 23rd: 12pm - 1pm, 2pm - 3pm:
Continued exploring OpenSpace to determine the software's compatability with other datasets: (hint: it's not!)
Designed for space - works for space, not for anything else!
Basically, OpenSpace limits you to NASA/the affiliated University's dataset. Fortunately these datasets contain the most up to date data for the observable universe, so it does not really matter!
April 19th: 12pm-5:30pm:
Continued exploring OpenSpace with different libraries and assets
It's very easy to move to different locations in space and do an in depth, close examination of planetary bodies
April 17th: 12pm - 5pm:
Spent the first few hours restructuring directories to match the specs and got everything setup correctly
It actually works!
Spent the next few hours playing around with the software. It's incredibly powerful and fascinating to use.
April 16th: 5pm - 9pm:
Began download and installation of OpenSpace
Had to download massive assets library separately from regular executable because of network problems
Took approx 3hrs to fully install.
During download and install read up on common bugs and installation problems that the software had documented
Unfortunately had to leave before even getting to use it
April 12th: 5pm - 7pm and 8pm - 11pm:
Continued focusing on Omegalib on Ubuntu
Successfully got.... nothing!!
Dependency issues are even more widespread in Ubuntu than in Windows, and it essentially makes the software worthless
Read further the documentation and realized the last update to the code was in 2016
Attempted to switch versions of Python from the current ersion back to 2.7, but it did not affect the useability (or lack thereof)
Wrote up an Omegalib review and tutorial for Windows and Ubuntu
Updated this journal to reflect the last few weeks of work
April 10th: 1pm-4pm:
Downloaded and installed Omegalib on Ubuntu
Installed all requisite dependencies
It didn't load or do anything, despite followng the tutorials...
April 7th: 11am - 5pm:
Downloaded and installed Omegalib on Windows:
Got it up and running on a demo within about three hours, after dealing with large amounts of dependency issues: I anticipate it would only have taken about an hour to do if the requisite software had already been installed
Attempted to get the International Space Station module up and running but to no avail
Also attempted to get any of my own data/code up and running, but also failed.
Dependency issues abound...
April 4th: 5pm-9pm:
Continued working on the demo presented in class on Unity to explore and play with the engine.
Spent about an hour reading up on the Omegalib documentation and code
April 2nd: 6pm - 10pm:
Downloaded and installed Unity into the Drive and onto my personal computer.
Explored Unity, and made mental comparisons of it to Cryengine and Lumberyard, the engines I worked with previously.
Validated the usability and ease of use that Unity provides, especially compared to other game engines.
Before Spring Break: Total = 68 Hours
March 21st: 5pm-8pm:
Synthesized the information given to me by my partner into a coherent strategy. Worked on improving the feasibility of my project and the specific deliverables that I would work toward.
March 20th: 9-10:30am:
Reviewed my partner's work and wrote up my thoughts on it as requested in the chat
March 14th: 4-7pm:
Determined what exactly I wanted to accomplish with the software below in the semester, and decided upon a concrete evaluation scheme with tutorials for each of them.
March 12th: 5pm - 9pm
Researched all of the software in the "Other Software" section and decided to focus on Omegalib, Worldviz, and OpenSpace, based on personal interest in what they focus on and based on what seemed feasible to get up and running in the time frame.
March 6th/7th: 10pm - 2am:
Wrote up the above report and gave my evaluation/feedback
Cleaned up the reports for Lumberyard and Cryengine
Added information to the homepage
March 3rd: 4pm - 7pm:
Worked more on improving the Lumberyard tutorial and more objectively documenting my work with Cryengine
March 1st: 8pm - 12am:
Finished up the Hello World example and worked on improving the tutorial for Lumberyard
February 28th: 6pm - 8pm:
Worked on refining the Hello World example for Lumberyard
February 26th: 8pm - 12am:
Began to make a Hello World example using Lumberyard
Very similar interface to Cryengine, but overall much easier to use
Updated journal and filled out the evaluation form for Cryengine
February 22nd: 1pm - 6pm:
Worked on Cryengine more and determined that it is simply inaccessible to people with my skill level.
February 21st: 9 - 10pm:
Wrote up the past week's work and began thinking of what to move on to.
Considering starting from scratch with a different software and attempting to get it up and running in VR, since Cryengine's learning curve was too steep. Thinking of approaching NASA's Openspace project.
Browsed through some of it's source code to identify the possibility of pursuing it
It seems that there are plenty of tutorials on getting started on native graphics, but that VR integration will require more digging.
Hoping to translate the below intro into a comprehensive tutorial from step one to finish on getting OpenVR supported OpenSpace running on Windows.
https://github.com/OpenSpace/OpenSpace/wiki/Concepts-OpenSpace-with-OpenVR-support
Hoping to get this up and running by next week.
If that is done, I'd like to explore other OpenVR software to figure out how quickly one can translate what's been created in OpenSpace to a new piece of scientific software.
Considering making a tutorial for SteamVR app integration, as several pieces of software I've explored seem to rely on SteamVR to actually run the projects
February 19th: 3 - 5pm:
Worked more on getting Cryengine working but realized that it may simply be impossible without much more experience with the engine.
The engine requires a manual change of source code files and use of C++ in the Game Code itself to activate VR, in addition to actually learning the graphics engine for producing the actual game to render
Clear instructions are given in the documentation, but the instructions require requisite knowledge that I do not have. Unsure how to proceed in this field, and am considering moving on to Lumberyard under the hope that it will be easier to port to VR.
February 16th: 5 - 7pm:
Continued exploring Cryengine and attempting to get it rendering on the Vive
February 15th: 12 - 4pm:
Worked in Graphics lab on getting Cryengine to render in VR
Faced extreme difficulty: could not get the application to recognize the Vive that was setup and could not get it rendering into the headset
Attempted to modify source code to allow VR as detailed in the Cryengine VR instructions, but the learning curve is extremely steep. It frequently references locations for directories that are nearly impossible to find or are named differently due to patches than in the documentation
Setup template for evaluating VR development software, published to template.
February 12th: 2 - 3pm:
Finished up this week's TODO
February 10th: 1pm - 3pm:
Research into Cryengine and Lumberyard
Brainstorming for this weeks TODO
February 6th: 12pm - 2:30pm:
Tried to setup Steam VR on my laptop but sadly determined my GPU isn't good enough to run it ):
Continued working with Baby Scene Graph and finally finished building my own scene!
February 5th: 9pm - 12am:
Continued trying out Baby Scene Graph
February 4th: 2pm - 5:30pm:
Began exploring Baby Scene Graph and attempting to use it to render basic shapes
February 3rd: 4pm - 7:30pm:
Continued exploring Cryengine and reading the documentation. We need an HMD to test if it truly renders in VR as the docs claim it does.
January 31st: 8pm - 12am:
Attempted to build a first Cryengine game with 3D objects using Cryengine starter videos
The asset manager for Cryengine is rather odd and actually generating assets is shockingly difficult
Steep learning curve
Updated site information to reflect documentation of Cryengine
January 31st: 2 - 5pm:
Read about and began to explore Cryengine.
Cryengine support for VR relies on independent drivers for each device. Drivers are installed upon connection of the device
Installed Cryengine and downloaded assets
January 31st: 12 - 1pm:
Attended a session led by Tom Sgouros introducing us to a baby version of a popular graphics database Scene Graph.
Learned some fundamental aspects of vector-based graphics as well as the importance of transformation matrices in keeping objects looking correct and the difficulty in using massive code libraries like Scene Graph.
January 30th-31st: 11pm - 1am:
Read about the applications of Virtual Reality to social sciences including Exposure Therapy (https://www.sciencedirect.com/science/article/pii/S0005796715300334) and healthcare (https://www.vrs.org.uk/virtual-reality-healthcare/)
Discovered https://www.vrs.org.uk/ as a fantastic site for identifying the history of VR and uses for it.
Earlier Work/Misc. Progress Reports
Plan of Action: (Post Spring Break)
Overall Objective:
My goal with this portion of class it to further pursue the scientific applications of VR. Within that, I want to analyze:
Simplicity of setup
Usage for data visualization and analysis
Ability to put our own data on it
Types of hardware usable with it
Activities:
Explore the 'Other Software" section:
Omegalib
OpenSpace (NASA)
WorldViz
Deliverables:
I will create pages and analyses of as much of the unanalyzed software as I can
I will use the standardized evaluation sheet to evaluate the software
I will create tutorials for each piece of software
Location in Manuscript:
This information will go on the individual software pages for each piece of software in the Manuscript's Other Software section. (Though, as I explore the software I may be able to put them into different locations once I know what the software really is about)
Objectives: Total estimated time: 60 hours
3/15 - Estimated time: 4 hours
Narrow down what software I intend to explore for this potion of the course and determine some specific software goals for each.
3/20 - Estimated time: 2 hours
Review partner's work
3/22 - Estimated time: 1 hour
Finalize list of software
4/3 - Estimated time: 7 hours
Setup Unity engine and play around with it for the tutorial in class
4/5 - Estimated time: 3 hours
Research if computer is capable of running software I want to explore below
4/10 - Estimated time: 7 hours
Setup and explore Omegalib
4/12 - Estimated time: 3 hours
Create a tutorial for Omegalib
4/17 - Estimated time: 7 hours
Setup and explore Openspace
4/19 - Estimated time: 3 hours
Create a tutorial for Openspace
4/24 - Estimated time: 7 hours
Setup and explore Worldviz
4/26 - Estimated time: 3 hours
Create a tutorial for Worldviz
Note: These objectives are all very similar, because of several reasons:
I want to do the same thing for each software so that it is standardized.
I don't know enough about each software yet to create software-specific goals
Brief Report of Activities: (Pre Spring Break)
Evaluation:
Activities are explicitly and clearly related to deliverables: 4
Deliverables are described and attributed in Wiki/Manuscript: 4
Items from In-Class Google sheet are in Wiki or Manuscript: 3
Report states total amount of time: 4
Total time is appropriate: 4
Total Amount of Time: ~28 hours
Activities: (bold is directly related to a deliverable below)
Cryengine:
I worked for several weeks on getting a 3D environment setup in Cryengine
I explored how the porting of that to VR required knowledge of the "Game Code" within Cryengine - i.e. the specific C++ and C# code for each game.
I attempted unfortunately was unable to get the game I developed into VR, but I was able to record this difficulty concisely in the evaluation rubric.
Lumberyard:
I setup Amazon Lumberyard from scratch on the Graphic Labs computes
I explored the "Gems" system that allows for easily accessing different functionality without downloading unnecessary software.
I followed online tutorials and successfully debugged the platform until it rendered directly into the Vive headset
I created a tutorial for getting a level setup in Lumberyard rendering into VR by conglomerating data from across different sources into one, easy-to-follow guide.
I evaluated Lumberyard using the template I created to accurately explain the hardships and conveniences of Lumberyard.
Template for Evaluation:
I produced a template for evaluating software critically and objectively, using time as the unit of measure, so that it is universal.
Miscellaneous:
I explored Openspace by NASA and intend to further explore it with other scientific VR tools for my next objective
I explored how the Vive works with SteamVR to better understand the connection between VR Development software and the Vive specifically.
Course Deliverables:
I generated accessibility/useability data for Cryengine and Lumberyard that I was able to put directly into the Wiki,
Specifically, I evaluated how easy/difficult it was to get a Hello World tutorial up and running in VR on each engine
I wrote the steps that worked for Lumberyard and explained the hardships I faced with Cryengine
I built a template for evaluation to be used across VR Software Platforms in an attempt to create a standardized ranking system for the VR Software.
I wrote a detailed step-by-step guide for creating a Hello World game on Lumberyard.
Location of Deliverables:
Lumberyard (tutorial and template)
Progress Report: (First Report)
Activities:
See the activity log below for more detailed explanations of what I have been working on. The biggest points are:
Researched Virtual Reality as a field, focused on identifying the applications of VR
Began exploring the Cryengine editor
Read through Cryengine documentation
Read about Amazon Lumberyard
Worked on creating an image using Baby Scene Graph
Course Deliverables:
An explanation of the applicability of Cryengine and Lumberyard to game design. -- This information will live in the Cryengine and Lumberyard VR Development Software tabs
Estimates of Cryengine and Lumberyard's accessibility to users of various levels -- This information will live in the Cryengine and Lumberyard VR Development Software tabs
A comprehensive comparison of Cryengine and Lumberyard -- This information will live in the VR Development Software tab where I believe we will ultimately conglomerate rankings on various software
Relationship between above:
My exploration into Cryengine - both its editor and documentation - has been immediately applied to updating the Cryengine information on this Wiki. As I continue to explore it I will keep adding more documentation to the above deliverable. I intend on continuing this with Lumberyard
Additionally, I intend to create some sort of getting started guide, akin to the ones on the Wiki for Unity and Unreal, so that it can be quickly determined the accessibility of this software to individuals.
Using the research I already have and additional research I will do, I will write a comparison between the two engines. (Note: This is a reasonable comparison because Lumberyard is based on a licensed copy of Cryengine)
Some of my other work - i.e. research on the general nature of VR and Baby Scene Graph - is less directly applicable to the product at a whole, but are useful in how they give me a broader understanding of the field. That being said, the general VR research could perhaps be applied to an introduction in the paper. The Baby Scene Graph work could maybe be applied to another deliverable with software that uses Scene Graph.
Multi-Week Plan (First Report)
2/15:
Go to the Graphics lab and successfully run some Cryengine games - commercial and personally developed - in VR.
2/22:
Start from scratch on Cryengine and see how long it takes to get a bouncing ball VR setup working
2/27:
Begin work with Amazon Lumberyard and repeat the above step to get a bouncing ball VR setup up and running
3/1:
Would specifically like to observe developer tools useful in both engines, to determine which has better usability for software developers
3/6
Want to begin to write up a comparison of the two engines