Making a Metaverse! A WebVR (not so M)MO for Programmers!
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 34 | |
Author | ||
License | CC Attribution - ShareAlike 3.0 Unported: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this | |
Identifiers | 10.5446/38555 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
Bangbangcon (!!CON 2016)20 / 34
3
15
16
17
18
19
24
28
30
32
34
00:00
Computer animation
00:11
Game theoryVirtual realityMultiplication signData storage devicePhysical systemJSONXMLComputer animationProgram flowchart
00:36
Virtual realityMultiplication signVirtual realityMetropolitan area network
00:57
Hacker (term)Computer animation
01:06
Virtual realityHacker (term)Video gameQuicksortObject (grammar)Covering spaceState of matterIntegrated development environmentFrustrationAirfoilOcean currentComputer programmingRevision controlData structureInterpreter (computing)Artificial lifeComputer animation
02:15
Projective planePhase transitionGame theoryComputer programmingVirtual realityComputer animation
02:43
MetreWeb browserComputer programmingLibrary (computing)Web 2.0Multiplication signSoftware frameworkComputer animation
03:19
BackupDemo (music)Demo (music)MereologyAreaMathematicsQuicksortCodeLoop (music)Variable (mathematics)Video gameString (computer science)Functional (mathematics)CyberspaceArtistic renderingDatabaseAttribute grammarComputer programmingContext awarenessWebsiteElectronic mailing listMedical imagingCubeSound effectDefault (computer science)GeometryObject (grammar)Menu (computing)Series (mathematics)Proper mapDifferent (Kate Ryan album)Computer animation
06:53
Slide ruleExistential quantificationComputer animation
07:18
Integrated development environmentQuicksortDifferent (Kate Ryan album)Immersion (album)MereologyAreaSlide ruleComputer programmingField (computer science)Constructor (object-oriented programming)Computer animation
08:11
Ocean currentQuicksortOnline helpComputer configurationIntegrated development environmentStudent's t-testLevel (video gaming)E-learningIntrusion detection system
08:43
TheoryRight angleMobile appMathematicsSystem callDisk read-and-write headInternetworkingComputing platformVirtual realityCartesian coordinate systemGraphical user interfaceEmailMultiplication signFacebookGoogolVideo game2 (number)Computer programmingComputer animation
09:57
Network topologyComputer programmingWebsiteSelf-organizationRule of inferenceSource codeThumbnailTwitterNeuroinformatikComputer animation
10:38
Power (physics)FreewareComputer animationXMLProgram flowchart
Transcript: English(auto-generated)
00:22
I used to spend a lot of time at the mall when I was growing up, and I'd go to these game stores and go there to play new games and try new systems, and it's in one of these stores where I had my first experience with virtual reality. I can't say for sure, but I don't think my 12-year-old self was that impressed, at least not as much as that guy.
00:48
And I liked, I kind of felt that way for a long time afterward. I mean, I like Lawnmower Man as much as the next person. But even when the Oculus Kickstarter came out, I just didn't feel that excited.
01:05
Until one day, I was on Hacker News, and then I saw this. And this is RiffSketch. It's a virtual reality live coding environment made by Brian Pierce. And when I saw this, something just clicked. It felt futuristic.
01:21
And I just kept thinking about it and thinking about it. And after I had made my own version, I was still kind of frustrated because I couldn't really pinpoint what it was about this that I found so compelling. So I just kept thinking about it and thinking about it, and eventually my current state of thought is that what's really cool about this is it's just this very
01:43
highly potential, like, rich medium for creativity and exploration. I mean, here's this world where you can just create objects out of thin air and breathe life into them. And it's kind of just sort of magical.
02:02
And so becoming the wizard on the cover of Structure and Interpretation of Computer Programs, that seems a lot more real. Let's stop this. So what I have is still pretty rough.
02:22
Still in the early phases, but I thought I'd go ahead and share what I have so far and kind of how I did it and also what excites me about the future. When I started this project, I didn't really know anything about 3D graphics or the technical details of virtual reality or even game programming.
02:43
And I'm still very much a novice, but kind of the cool thing about programming is you can sort of stand on the shoulders of giants. So the main tools I used were Meteor, which is this JavaScript web framework, and 3JS, JavaScript library for doing 3D graphics in the browser.
03:01
I don't really have time to go into details about these, but they're really cool, so check them out. But what these let me do was to focus on the kind of few simple ideas and steps for making this programmable world.
03:20
So this is the part where I try and do a live demo. I should warn you, every live demo I've done has had something go wrong, so we'll see. So what you're seeing here are two different accounts connected to the same site and hopefully, when I make changes in this one, you'll see them in the other one.
03:44
Just size this properly. Okay. So the first kind of main idea is to treat objects in the world as programs and programs as data. And what I mean by that is that this floating yellow cube and this
04:00
bouncing toroidal knot, apparently in 3JS, that's a default geometry. They're each controlled by a separate program, and those programs are stored as documents or different entries in the database. So what do I mean by program in this context? I just created a new one, and
04:21
a program is basically just a string of text, or two strings of text. One is an initialization function, and the other is an update function. And there are a few other attributes, but that's pretty much it. We have this list of contributors, so different people can be added to edit the code. There's this name, so you can easily find it in this drop-down menu.
04:45
So that's kind of the first idea, and then the second is to use eval. And if you're not familiar with eval, it's pretty awesome. It's also kind of dangerous, but And so, what we do with eval is that when you visit this site, we're kind of just downloading all these programs and
05:07
then using eval to run their initialization functions. And when we change those initialization functions, we also run eval to sort of change those, and we get this live updating effect. And then the last part of this is
05:26
the rendering loop, and the rendering loop, if you think of a movie, it has a series of images. These are poorly named variables. The rendering loop is responsible for drawing each of these images, and
05:44
what we're doing here is we're calling each of the programs each of the programs update functions during the rendering loop. And that's what allows us to have things like movement and make these dynamic and give them life.
06:03
We can send this up into space. So now we have this 3D world where
06:22
it's VR enabled, although you can't see it now. So what do we do with this? If you're like me, this is pretty cool, so that's enough. But most people I show to are like, okay, what are you gonna do with it? So I have some ideas, and I'd love to hear from anyone who has ideas, or even better yet,
06:44
see, you know, like what you make with this. But kind of the first area is education. And I've worked at edtech companies for a little while now, so it's not surprising. This is one of the first things I've been thinking about.
07:01
Just as an aside, I took this slide from a talk by Peter Norvig, who was talking about education, because I just love this little guy in the corner. He's like, something's never changed. And so, more specifically, I'm interested in programming education. I'm using this for that.
07:22
And I went to this talk recently by John Iwata. He's the marketing lead at IBM. And he had this great slide with his quote from Arthur C. Clark, which was, the greatest single industry of the future will be education. The second greatest will be entertainment. I think the two should be synonymous.
07:41
And the exciting part about VR and you know, environments like the Construct Club or RiffSketch, is that I think it has this a lot of potential to bring these two different areas of education and entertainment together. Again, this, having this immersive sort of environment where you can really see and
08:02
feel the magic of creating things with programming. I think that could be really powerful for people coming to to the field. Oh, yeah, and also like just having this virtual body, like just imagine having students sort of come online and working on their virtual IDEs and having a teacher walk around and
08:26
sort of be able to see what they're doing and then add their support and help. And I think that adds this sort of level of community or intimacy that we just don't have with current options for online learning.
08:43
And so if we generalize, like having a virtual body like changes how we learn online, what other things or what kind of changes does that make to other things we do online? These are just arbitrary JavaScript programs, so in theory we can make more than just moving digital sculptures.
09:04
We can call APIs or make applications. So what do those applications look like? I don't know, like what is a weather app look like? What does email look like? According to this picture, the only apps we use in the future are Facebook, SoundCloud, and Google Chrome.
09:22
It's probably not too far from what I actually use. And so at that same talk where John Iwata was speaking, Philip Rosedale, the creator of Second Life, was giving this talk and he was saying that VR right now is where the internet was in the early 90s, and
09:43
we have no idea what is going to become of it. And the kind of takeaway I had was that if you create a platform and give people the freedom to create, amazing things can happen. So that's about all I had in my head right now.
10:01
Just wanted to thank all the organizers and sponsors and all of you. I've been more active on Twitter recently. I'll be tweeting about how I try to grow an avocado tree, so if you hated this talk, but like avocados, you can still follow me.
10:21
And then the website is construct.club. Like I said, eval is dangerous, so my rule of thumb is if you don't write programs, you wouldn't run on your mother's computer. Happy Mother's Day. Thanks. Oh yeah, the source is here.