Kevin Dackow journal

Kevin Dackow (908) 723 - 7374 kevin_dackow@brown.edu

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.

    • Cryengine

      • Explored the Game engine to determine its VR readiness and usability (or lack thereof)

    • Lumberyard

      • Built a VR demo and tutorial using the engine

      • Built a tutorial for rendering a given Lumberyard tutorial into VR

    • Omegalib

      • Tested the software across Operating Systems to determine its cross-platform compatibility

      • Tried various demos to varying levels of success

    • OpenSpace

      • Explored the software's power and ease of use

      • Attempted to render into VR and explored its potential for growth

    • Worldviz (Vizard)

      • 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:

    • Template for Evaluation

      • 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 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:

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:

  1. I want to do the same thing for each software so that it is standardized.

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

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:

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

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

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