Teleportation was something I ended up working on for basically a week straight, during which I produced multiple iterations of how to accomplish it with the Daydream controller. The plan was to shoot a raycaster into the ground, find where it intersected with the ground, and then move the user’s avatar to that intersection point. Sounds simple enough, right?
The aframe-daydream-controller-component comes with a built-in A-Frame raycaster, so setting up a simple scene with the controller and configuring it so that you’d move where your controller was pointing wasn’t terribly difficult.
So, it’s been a while. In the past couple of weeks, our project has gone from a scaffolded foundation to a thing with different rooms and avatar skins and couches, and it’s been really cool to see!
Logging In One of the first things we did following my last post was implement Login and OAuth. At one point, we were encountering a Sequelize race condition, where we couldn’t refer to the user model with its filepath; instead, we had to import it into our file using const User = require('.
Most of our work on our Capstone project this past week has been trying to set up the base for what we’ll be building the super cool features off of. So far, I ported my prototype over, put React in, took React out, put React in again, put Redux and Immutable.js in, fixed race conditions (race conditions and I have grown a little too familiar with each other for my liking), and learned an important lesson about querySelector.
Step 1: Come up with an idea. Decide upon attempting to prototype a social VR app that would support many users, as there isn’t one that exists today that does so, and ideally (if time permits) implement real-time audio.
Step 2: Notice that A-Frame is supposedly easy to get up-and-running. Do some digging into creating multiuser experiences in A-Frame. Discover that someone has created a Firebase component in A-Frame, making the multiuser part very easy.
We presented Codsworth Robotics, your one and only source for robot butlers, today in class. It’s officially live here, and you can view the code here. Although it still may be far from a production-ready app, it’s basically a fully-functioning e-commerce store, which is pretty impressive, if I do say so myself.
One of the coolest moments of my young programming career so far happened on Monday night, when I hooked up the npm package nodemailer to our checkout process, so that when a user places an order, they’ll immediately be sent an email with their confirmation number.
In the past few days, we’ve moved on from working primarily on the back-end of Codsworth Robotics to actually rendering the data our back-end is feeding to us. We’ve also started putting together an overall theme and look.
The features I’ve primarily been working on have been the Orders History page for a logged in user, and I just started working on our cart. Relatively early on in the process, we decided we were just going to have our cart saved on the session, and never actually persisted in the database.
I’m alive, I promise. Mostly. I’m just running on very little sleep. Also, can we talk about the fact that this is the first post I get to tag with “senior phase”?!
So, let’s talk about everything I’ve been doing since the last time I wrote about something that wasn’t me accidentally deleting my master branch of my blog. Over winter break, I:
Re-did, in its entirety, Game of Life using React and Redux.