final video fixed

0 comments

final webvlog

0 comments

weekly weblog 5/16/2019

This week was also AP week so very little was done. Since it was the final week we mainly just backed up our stuff so we can keep it for the future. During the last class we planned our final video and when class ended we recorded it at a friend's house.

0 comments

daily weblog 5/16/2019

Today was the last day of ISR so I spent the class backing up my stuff. To do that I just compressed the ChromiumXR project and my example AR websites into a single zip file and uploaded it to Google Drive. The ChromiumXR project was pretty big (>150MB) due to the it containing the entirety of Chromium within it so it took a while to upload.

0 comments

daily weblog 5/15/2019

Today was my AP Lang & Comp exam so I didn't go to class

0 comments

daily weblog 5/14/2019

Today there were AP Calculus finals, which I'm not in but Morgan was so it was just me and a couple other people in class. I also had a Spanish final later that day so I spent this class studying for that.

0 comments

weekly weblog 5/11/2019

This week was AP week so not much progress was made until the last period. During the last period I finally tackled the rendering issues that's made ChromiumXR unstable for a while now. That issue was the main thing holding us back from developing content which is unfortunate that it couldn't have been fixed a while ago (considering it's the end of the school year) although that isn't that big of a problem since I was planning on working on ChromiumXR beyond ISR.

0 comments

daily weblog 5/10/2019

Today Bernstein came in to give us an interview although half of the class was spent programming as Bernstein set up the lighting and recording equipment. During the first half of class I had the idea of adding some console.logs in the code to help debug. ChromiumXR is basically split into about 5 codebases, which are layered like this:

[Chromium Layer for rendering the webpages]
Chromium (C++, browser by Google that Google Chrome is based off of)
-> Chromium Embedded Framework (C++, library for embedding Chromium into programs)
-> ChromeTex Server (C#, library by me that attaches to CEF and creates wrapper functions that can be used by Unity)
[Unity3d Layer for rendering on the AR device]
-> ChromeTex Client (C#, Unity3d library I made that makes it so you can easily use Chromium in a Unity3d scene)
[Web/Application Layer for creating the AR content]
-> ChromiumXR Low Level API (js, Javascript library I made that adds low level WebGL functions for sending HTML and web content to the AR compositor)
-> xr.js (js, high level api to make creating AR content quick and easy)

At this point all those layers are coded and pretty much functional, although there has still been a flickering problem for a while. The ChromeTex Client has been rendering blank frames and I've spent most of my time trying to debug it in that layer. During this class I had the idea of assuming it's not a problem with the rendering or a error in parsing the data sent by the ChromeTex Server, but rather an issue with Chromium Embedded Framework itself. To test this theory I logged the data received by CEF in ChromeTex Server and discovered that CEF sends the correct frame then instantly sends a blank frame which causes the flickering. By ignoring every other frame I managed to solve the flickering without any noticeable performance issues which means I finally tackled the only major bug for ChromiumXR. After that we had an interview about the project which went pretty good.

0 comments

daily weblog 5/8/2019

This class I was working on fixing some bugs with the ChromiumXR browser. AR content wasn't displaying which at first I assumed was a problem with Morgan's web API but eventually I found out it was a typo in the lower level ChromiumXR api that gets injected into the webpages.

0 comments

daily weblog 5/7/2019

This day was my AP Physics 1 exam day so I didn't go to class

0 comments

daily weblog 5/6/2019

This week was AP week so I mainly focused on studying during class. On Tuesday was my AP Physics exam so I studied a bit for that but mainly spent the class reading about APUSH since thats the exam I was most worried about.

0 comments

weekly weblog 5/4/2019

This week we made some good progress, as we finally got ChromiumXR to be functional enough to develop with. This week we also decided on a name for our AR/VR js scene editor, which will be called xr.js. With those two things done I've been able to start working on the next stage in ChromiumXR, which is web content.

0 comments

daily weblog 5/2/2019

I've been working on an AR website that would open when you look at a fake debit card. The site would get triggered by a pattern on the card, and once it's open it will overlay a balance and other info (locked by a pin code). While coding this we did run into a few more bugs which will need to be fixed.

0 comments

daily weblog 4/30/2019

During yesterday's ISR sport, Morgan managed to implement the ChromiumXR updated api into xr.js. As of now we can finally start making AR websites. Morgan started using it to jazz up the ChromiumXR website, and I am using it to try making an AR overlay for a physical object (such as a video floating next to a business card or game pieces floating above a board game, I haven't decided what exactly to make yet).

0 comments

daily weblog 4/29/2019

Since last class we've pretty much got ChromiumXR to be functional enough to browse the web and start making an example site. There were just a few more bugs to fix which I spent the majority of the class doing. Once it was ready I made some small documentation for the API and gave it to Morgan so he can start implementing it into xr.js. (xr.js provides HTML custom elements that allow you to easily build an AR experience with little to no programming knowledge)

0 comments

weekly weblog 4/27/2019

This week a lot of progress was made for ChromiumXR. I wasn't able to work on it much last week due to illness but at least this week I got it to a pretty functional state. It is pretty much almost done in terms of being able to browse an AR internet, I just need to fix some bugs such as the flickering problem and possibly tweak the reprojection.

0 comments

daily weblog 4/26/2019

During this class I took a quick break from ChromiumXR to finish another project I started at home. The project itself was a remote access tool, like TeamViewer, Windows RDP, or LogMeIn's stuff. Although what made it unique was that it was coded 100% in Javascript using chrome's extension API (the same api used by firefox), so you can basically browse the internet on your Chromebook or PC through a web-based client accessible on your phone. It was practically done but just needed some testing so I connected to the server and tried accessing my PC, which kinda worked so I spent the rest of class bugfixing.

0 comments

daily weblog 4/23/2019

Today was the day before the capstone exhibition so I spent this class trying to fix bugs and getting everything working so I can show it off. All the new features were implemented so this class I just did some last minute bug fixing and tried implementing the features into Morgan's demo website. Eventually all that was done and it was finally working although near the end of the class I somehow encountered the bug of everything flickering which I don't know how I'll fix.

0 comments

daily weblog 4/22/2019

During the ISR sport I made a lot of progress with ChromiumXR so it could be ready for the presentation on Wednesday. I finished the new VR renderer by using DrawMeshNow instead of DrawMesh, and adding UVs and new indices to my procedural quad mesh data. I also made a small library that'll be injected into every loaded ChromiumXR page called compositor.js, which lets you create offscreen canvases. When initialized, a popup window is made in the background with compositor=true. The popup window is set to about:blank to be a blank page, but luckily Chromium allows you to use window.document on a popup to access the DOM, meaning I was able to create a canvas and access it between windows. This also meant I had to edit my Chromium2Unity library to have multiwindow support which I also managed to get working, during class on 4/23/2019 I'm going to try to get compositor.js into Morgan's AR rendering library so we can make a demo page for Wednesday.

0 comments

weekly weblog 4/20/2019

This week I worked on a document that'll used during the capstone presentation on the 24th. I wasn't able to make it to any other classes this week as I fell ill so not much work was done. In class I made a studentcorner page for my CityRP game, next class I'll make one for ChromiumXR.

0 comments