ould not care about light because there's different way like light in a 3d scene is not something that you physically intrinsically have to have it's something that you choose to need if you want that so you can actually tell it to like ignore lighting entirely and i think uh-huh here we go uh flat shader is that the thing that i want standard material do i get to actually pick a different material i wonder how do i say it like i'll try something because i've never used that property now that i think about it so let's see what happens um call shader basic i don't know if that's the right thing no it's not okay cool i kind of expect that to happen we're getting somewhere i'm not exactly sure where we are getting was interesting anyways is it a flat shader because it aha right so a flat shader um it's a bit confusing because it a frame uses 3js under the hood and 3js calls it a basic material and the basic material just ignores light and just uses this color um and here's like a flat shader which to me is something different but okay it's whatever um so basically by saying that you want the shader to be flat rather than the standard you get a shader that ignores lighting entirely and just uses the texture that you give it and which effectively looks if the texture is right looks like it's emitting light but it's actually not emitting light okay so now we have like this wonderful little scene with the sun and the little planet orbiting and actually let's find the an earth texture as well just why not very good question not as easy um for glowing you would have to write your own material and an old shader i think there's might be an effect for it um let's actually let's actually look for it i don't i don't know for sure right hemisphere light um but it doesn't have a position the hemisphere light shouldn't have a position make it look like this and oh okay yeah it looks more or less nice so but are you sure it looks the same on the on the back of the sun um if you go if you go around the sun i'm relatively sure with the hemisphere light you might not see because hemisphere lights are basically working like the natural sun would work on the earth so they shine in one direction it's it's like a point uh light but it's bigger and if uh i believe if i said hemisphere size bigger might work but i'm i would be surprised because it's normally literally meant to like shine on one side of a thing and not like all around it i would be surprised if that works but you know if if you're right that'd be amazing because that means i learned something today that'd be cool try going behind the sun does the back of the sun also get lighted that way or below the sun because the hemisphere light has to like it literally is a half a sphere so it has to light from one direction but i don't see you would have to have a second hemisphere light to actually light from the other direction as well anyhow that's really cool cool um yeah so to make it glow you would have to oh what the hell uh you would have to use a component to actually make that work and i would not necessarily use that because it will definitely have a performance impact you can write your own shaders and there are probably custom shaders available for glowing somewhere um like when when you use our 3d models you actually get a different shader than the 3js or a frame shaders because we do light maps differently i mean there's other types of light as well you don't only have the um the point lights you also have the hemisphere light you also have the directive light a directional light jesus you can then start to like experiment with things so for instance we might want to do something slightly different i'm actually not going to remove all of this but i'm going to comment it out so that it doesn't get in our way um so i'm going to leave the sky in because it's nice to have the sky here so what i can do is i can have an a entity geometry primitive plane and i oh god i can never remember i'm going to do it like this and i'm going to see what happens because i can never remember which way i have to rotate it to make it look the way i want to make it look like so i'm going to start with this and i'm going to figure out the rotation by just like turning it and see it's negative okay fair enough so we're going to rotate this rotation zero no sorry minus 90 zero zero so we are rotating around the x axis and i'm gonna i'm gonna give this one a width of 100 and the height of or depth i think it's depth depth of 100 so now we have like a plane that is our ground plane and i'm actually not seeing it and it might be because i might have done something that is wrong right it's not depth in that case it is is it height that's like super weird yeah okay fair enough and you see like i didn't give it a material yet and immediately 3js as i keep saying 3js jesus christ a frame jumps in and for our ground so we now have created a ground plane um and for that to like look like something it just generates a color uh and makes sure that we are we are seeing it but i can also give it like a material and i can say i don't know i want this to be color 0 0 a a 0 0 so we have a bit of that um now i can actually make that white whoopsa shit make that white no not hashtag white and i can create a light light and position it somewhere and i'm just gonna position it actually i don't have to position it i think um i wanted a different light i wanted directional light and again i can never remember the parameters so i just gonna check them out here directional what kind of direction does it automatically go to the example below creates shining from the upper left at a 45 degree angle where does the 45 degree all right okay all right yes yes yes because the directional light is basically it's not quite like the sun actually works but it's basically like light coming from some direction and going towards the origin so the position doesn't actually matter that much and it except for we need to figure out like the the difference between where the light is positioned and the origin is the direction that the light is going to shine in towards so if i say 0 1 0 the light is going to come from the top and shine to the bottom because this is our ground and this is our light so the light this is the the difference between the light position and the origin position so it's going to shine in that direction from the top and i give it a color oh yeah let's do something vapor baby let's go um ha let's try a a 0 0 a a and then we do a second light same light except for i do a different color and i do a different position so now this light's shining from the bottom up and so we have a magenta light shining down from from above and another light shining up and now we put an additional entity in a entity geometry primitive sphere material color white oops color white and we position that in front of our camera so that we actually see it and actually maybe i move it up a little bit as well so that we see something and hey the 80s called nah that's too much still too much no way what okay it's like super super intensive better so like yeah the 80s called they want their models back and this is how you do vapor wave um and you could also now like uh let me actually see so i go to images google.com and i need a grid image that is nicely tileable no that's all bullshit i just need to ah god damn it tile ah this is not what i am looking for right you know what i'll do it myself because i'm a great graphical artist uh this is gonna be fun come on i can't be bothered to buy adobe products so i'm like yep gim bit is and i was like who the what why would you use gim but i'm like you know let me do my thing i know what i'm doing no i actually don't but you know it's kind of cool anyway so uh let's use black and then use white to create a little bit of oh Jesus Christ how do i make this grid parent tileable so it's like 256 pixels it's like 128 so i go like 124 to 132 it's like nah that's actually pretty tiny but it's going to be fine i guess and then just like drag it like here i'm going to share the the url to this particular beautiful image in a second so that you don't have to do like this complicated uh image editing process so i'm just going to copy the layer here and then just actually no actually i can duplicate the layer and then no i can't because it's not transparent ah Jesus Christ ah make it transparent put it in here and then i do like layer rotate rotate rotate rotate 90% clockwise here we go so this is my grid hurrah okay cool so export as png yeah let's call it grid why is it why is it putting it into documents no don't put it into documents this is not a document this is a this is terrible um but it's okay i got this Jesus so we put this into assets uh where's like the upload thing there's an ah here from computer i go to downloads i go to grid i upload my grid and i can now go to my which is this one i should probably give it an id so that i can just easier identify later on and i can give my ground a different material where i'm saying like source is this wonderful your oops what uploading url no don't no don't you Jesus okay great now i have like five times um i get a url from the assets and i put it in here and whoa okay this is like gigantic now this is not what i want it okay let's do like oh i can't remember i think it's like repeat 1010 or something like that is that yes right okay now we have we have fully gone vapor wave here we can make the overall scene a little less dark by adding another light uh like a really really gentle a entity light type ambient color six six six six six yes that looks like enough sixes um that's too bright actually already so let's let's actually make that darker yeah still still pretty bright yeah it's nicer um so yeah hurrah this is the kind of stuff that you get to create and then like walk around and then have a lot of fun um could you show the tag for the ground again yes the ground is a actually let me let me fix that a little bit so that's not as as hard to read on the projector let's move it around here and then the rotation and then the material with the certain source and that should be it yes okay cool so yeah uh oh no oh shit is it all lost now it is probably all lost now oh no actually it's not because no it is all lost no i i think i think it isn't because it must have been saved because i was able to actually go to it on my phone so it was like fortunate something something if you're logged in i think i don't know i wasn't logged in so that's like that was the danger stranger danger um let's see fortunate tendency okay fortunate tendency dot glitch dot me if that's still there then we should be good and it's still there so we should be good so let's see it's like glitch me and then like this i know it's actually glitch.com isn't it the naming convention never occurred to me this is like oh look at that i i'm not signed in but it magically figures out that it's me awesome thank you so much glitch because that was like not expected to happen um so yeah we have a plane we give it a certain width and height we rotate it minus 90 degrees around the x-axis so that it actually faces upwards and then we give it a material with a given grid image if you want to use the grid image i can create a short URL if you want yeah sure so you know it's super like i totally have the uh no not that uh i totally have the copyright on that but i'm i'm okay i think i make it public domain i don't i won't make you pay for this like it's probably to be honest the thing is actually better like than like like one percent of the of the uh stock photos are just like shit so i think this is actually better like you know there's stock photos where you're like what the hell women laughing at salad is one of my favorite ones is like what again don't use the short URL if you use the short URL in the thing it's very likely to not work because it does like a redirect instead of actually giving you the the thing and then that breaks um cross origin sharing i think right any questions so far should you go back to the code i could totally do that anything particular you're missing if you don't put a week and a half and apply you will just extend it firmly no it will be like one by one meter you can also use scale to scale it up um but that that means that basically you're like stretching it a lot and that not necessarily gonna look great with textures yeah um so i kind of prefer that because it makes clear that light is a component on its own that you can attach to pretty much any entity that you wish to but technically it's not much of a difference there is pitfall here is for certain entities there are differences for instance writing a camera is not a good idea because of the way that the camera component system interacts with the scene so it's like it's a it's a little tricky and whoops is someone co-editing this right now because i'm not exactly sure where the color comes from like is someone highlighting can i see is there someone like oh yeah look at that hi uh very nice meeting y'all interesting interesting i did not know that glitch can do that but it's cool to to figure that one out you know so it's also like i i saw a lot of people got like super confused um for instance when you like a entity and then people are like color blue and they're like it doesn't work anymore why does it not work i'm like well because it's an entity and color is not a component that it can use by its own it only works when you use it with a primitive component so i kind of prefer that style i actually to be honest when i write a frame component a frame code i usually don't do that but i find it easier to teach that way because it's like consistent uh and you always do it like that i mean i made an exception for the sky because i couldn't be bothered to actually look up how the the sky material thing works because it's just like not really useful in most cases also by the way we don't we are not constrained to use like the things that a frame comes with so there's a thing um called the a frame component registry and i'm actually not sure i've never used an inspector so i'm going to see how that works so we can add things to the scene in the inspector so we can say like add a new thing and this is an entity so it's an empty nothing thing right it doesn't have anything attached to it so we can't really see any of of what it has and um i'm actually wondering if i'm able to oh this is interesting so it has all the components that that a frame comes with but it also has this has this a frame component registry and in the component registry you can search for things for instance i can search for environment and i find this and it allows me to to basically like get the url of the component and i can copy this i should have actually copied it on the on the thing before so again like if you add something you can see all the components that a frame comes with and we also actually see like the i o 3d components because we have loaded i o 3d i o into our scene as well so here we have all the wonderful a frame components and then you have like the a frame registry next to it and it gives you an overview of all the different available components and there's like a lot of them um you see for instance like an ocean or a force graph gaze control yada yada yada layouts leap hands if you have a leap motion yeah so there's like lots of these components available which is like super nice and uh i have just copied one and i'm gonna go here and after our scripts i'm gonna do like script this is super confusing whoever highlighted this thing can you please unhighlight it just nice so what i again what i have done is in the a frame inspector i clicked on a frame registry and i looked for environment and you get this component here and i think they actually also have like previews yes so here we have a preview of the component what it does how to load it and how to use it and he says like it has a bunch of presets and has a bunch of parameters and yada yada yada so i just loaded this javascript into my scripts sorry into my documents it's a frame environment component and now i can use it in my scene and i probably want to remove my uh my ground because i'm relatively sure that the ground actually also the lights probably because i'm relatively sure that it's gonna collide with uh what the what the component does so if i'm now going back and reload oh i magically lost reload capabilities so i probably want to do like show live all right so now this component creates an environment which is like very nice and as we've seen in the a frame inspector even for these components that are not a frame components built by a frame themselves but actually built by um built by by the community you get to see all the parameters in the a frame inspector so we can now explore and try things out so for instance we can use a different preset let's use tron and then you get like this trony environment it's a bit weird but okay i don't like these weird towers so let's find out what these towers are where are they coming from ground spikes maybe what happens when i say like hills instead all right okay no that's not the okay that's not what i wanted so i kind of want to do like spikes it's okay ah dressing towers i don't like towers i would like trees make no sense mushrooms are like super weird in this case so how about oh okay yeah no that's very nice but not what i want so can i say like nothing oh cubes no that looks even worse um let's go with nothing so you get to like explore different things like this this environment component is really nice because you don't have to do much and you get like a nice environment um if you're not that much into like cyber punky things then what you can do is you can also try i think there's like forests somewhere and there's like actually a nice forest here we go forest and then you have like a brightly lit scene so you don't really have to build your own environments you can use one of these templates if you really quickly want to like build something up but i highly recommend at least like trying to build your own environments because it's kind of fun and gives you like a more better feeling for the the thing you are creating i'd say fortunate tendency all right okay um if we wanted to get that into into our code we should be able to just say like copy this and i'm gonna oh jeez you know what i'm gonna i'm gonna remix this don't you dare don't you dare okay um so this is actually like dragging in everything that it generates so what you see here is there's a bit of an interesting secret in this one so what we've seen in the inspector if you look closely is that this actually generates a bunch of more entities right so i had an entity with like the environment component but it actually generates a bunch of entities inside and i can either keep them or i can remove them and it's going to regenerate them that's basically up to me but yeah so your components could theoretically create more whoops okay this is not exactly what i wanted more more things inside so this component is actually slightly buggy because it should not do it should figure out that it has children and then just reuse the children but instead it's actually generating them on top of each other okay what the hell i think i'm just going to remove everything except for the for the preset so let's let's just not have that yeah okay better by the way if you ever see like weird things happen let's let's let's try something i want to show you something and explain to you why it happens because that's some some of the problems that i keep seeing people having so let's say like color red so now we have two skies right we have this sky that is red and we have this sky that is dark blue and what happens is and i'm not sure if it's going to happen that no it's not violently happening which is nice um okay in that case let's let's not show it in the in the thingy and what instead i'm doing is i'm doing i'm doing this i'm going to copy the sphere and i'm going to give this a red material ah dang it's not happening which is nice but it's also not what i expected um i scale this slightly smaller maybe scale 0.99 0.99 0.99 because what i try to show you is if you have two entities that are overlapping quite exactly how this is interesting this is still not happening 0.001 hmm it's interesting that i can't demo it when i really really want it but if if i don't want it to happen then it happens this is like typical uh what i'm trying to show you is like z fighting but i can't actually reproduce the problem great um basically what you want to look out for is if things are starting to flicker that's normally when two objects are kind of like on the same position and because it's the same position the rendering engine has to kind of decide on random which one to draw at the last one so it's not guaranteed to be drawn in the same order so basically is then like it starts to fight over who's going to be drawn first and last and that starts to like flicker especially when you move um when you see that it's normally because two things are in the same position uh it can also be a problem in 3d models when 3d artists are not careful enough they might actually accidentally create two faces on top of each other and then that exactly is what happens um good one last thing that i'd like to show you before we we try to do something in in vr uh or i give you the time to actually explore vr a little bit if you're interested is i want to show you how to write your own components because surprisingly it's not that hard it's not like super obvious but it's not that hard because there's really really good documentation um that explains it really really well so what i'm going to do is i'm first going to i'm going to get our nice uh nice steam back because i kind of liked it yeah that's the thing um oh one one more one more one more thing before i do that there's also an a text component that gives you the possibility to actually create text uh it works slightly different than you might want to expect um the text component is documented in here as well as it's part of the uh text um sorry a part of the a-frame distribution um you can use google funds and stuff with it if you use an additional um an additional uh component for that and it has like these funds uh fund faces built in basically so that that works as well you can also generate funds from it i've always always found that to be like confusing and weird so i never did it but um you can hypothetically do that and how it works is you position it as anything else you would position so let's say like zero two minus two and then you give it the text ah shit that is actually incorrect it's an a entity see that's what i meant with like being consistent uh a entity and you give it the text component and you give it a value and in the value you say like hello world and then where is it it doesn't show up because i think i forgot to give it a material as well to color white do i have to give it a font no oh probably our sphere is in the way isn't it ah bum dash dash yeah there it is hi there there's also an external component so this this one has one downside uh it has an upside as well performance wise this is really nice because it just basically renders a single uh face but on the other hand it doesn't have any depth right and if you're standing behind it well right it's gone um so if you want to have something more like thick and and with a bit of depth then there's like the a text geometry which is really nice but it has the downside of actually rendering more triangles so it's like a a bit of a you have to figure out what makes more sense in this particular case um you can also render two-dimensional images as well there's like an a image component that actually renders a single image that floats in space you can also do that um i think i haven't done that yet but it's not too like too exciting but if you have like regular images that you want to have like an image gallery or something like that then you can do that by basically saying a entity image and then you give it like a source and you can also give it a width actually like i don't know a jpeg and you give it a width like 0.5 which is like half a meter height it's like i don't know 0.25 or whatever and you position that as well so that's not like super exciting but i wanted you to know that this exists it's not only 360 degree images you can also do like normal 2d images so what i'd like to do is i'd like to get our i don't need to defer um our script used so if we want to create a a frame component we do that using the a frame is it a frame was it like a frame i can never remember i think it's a frame register component and we give that an object and um i think we also give it a name and yes we give it a name in an object so basically i would call this planets i don't know we would have to figure this one out um so let's give it like a planets component and the first thing that we have to do is we have to figure out our schema so if you remember we had in the inspector we had like all these different properties right that we could set like the material it had like color and the geometry had like primitive our component might have the same and we want to define it in here so let's say in our in our um planets thing we might want to give it the number of planets that are or actually call it solar system that makes more sense solar system the number of planets and for the inspector to figure out what kind of data this is we have to give it like a bit of help so number is any number including floating point numbers but that makes no sense because we can't have 3.5 planets that does not really work so let's use int which is any integer number we can also give it a default value if it's not specified it should have a default value and i say this one it can be two it doesn't matter it's just like that's going to be the default and we can have multiple of these we can have i don't know um moving shall have like type i think it's boolean i'm never sure and default shall be true so this is how we define the properties that our our component will have and aframes has two methods that it's going to call on this one is the init function that's going to be called initially and it's the update function that is called whenever something's changing oh i forgot a comma here i'm sorry for that so let's just start like with the update function and call like updating solar system it's not very exciting it's not doing anything interesting just yet but it does log something to the console so we can figure out if our component would be working so again in the schema we're defining all the properties that our component will have and then we have an init function and an update function um to well create the thing initially and then afterwards whenever it needs updating we can update it here violent typing so i'll wait a moment so now we're not really using this component um so we want to want to change our index html to actually use this component so let's say like we have an a entity and we have a solar system now if we reload we're not seeing anything because we haven't created anything yet right we haven't done anything visible but in a console it says updating solar system yay so basically this is the moment when the component is basically getting like updated information on what it should be doing based on the schematics and if we now go into our inspector actually let me remove this and go into the inspector and we select the entity which should probably be this one then we see that the properties that we've given it in the schema appear here right and i can change them and i can say four and i can say i don't want them moving so you see that based on the type that we've given the interface actually updates and it has a few nice things like i said four but i can also like drag and then it increases in steps of one because we said it's an integer number so it doesn't do like floating point numbers in this case and if we look at our console again then we see that it has been called more often now that we've changed it and if i change this again you know you see like anytime this information changes um it is actually changing or updating our components it's calling this function that we have in our component we can also do that manually and i'm not exactly sure if this is going to work the way that i want it to work so let's see like i want all a entities yes thank you and i want the one that is i should have given it an oh shit i should have given it a um an id so that it's easier for me but this looks right so components lists all the components that this particular entity has and here's our solar system components so we can go in and say solar system and now in the solar system component we have data and data is exactly what we enter here right these two match so if i now type in like five here and i call it again and we see like number of planets is now five so you can programmatically access and change this information not that you should do that but you can and then you can also manually like call update so i can actually go in here and say like solar system dot data dot moving equals true and i think it was false before and then we can call update on it and um okay the inspector doesn't update that's an interesting one but if i now close and open the inspector again then it's actually updating the inspector there must be a leak somewhere cool but this is not interesting right we haven't actually rendered anything we haven't done anything interesting in our in our component so can we can we do something interesting here yes we can hell yes so how about this how about we go in and um say this which is the component um get oh god is it i get object 3d or is it get 3d object i can never remember the syntax here let's let's check uh is it like get object 3d 3d get objects no ah get 3d object okay time to look at the documentation uh i'm so sorry but it's like to be honest everyone reads the documentation all the time and i i'm not gonna lie to you and go like oh i learned this by heart no i just we're not in school here come on um set object 3d and get object 3d so okay it's like with the uppercase d all right so basically what we can do is we want to create our own um things and there's two ways of doing this as i said a frame is wrapping around 3js so if you happen to know the 3js library then you can use that so what we can do is we can for instance say var mesh equals new three mesh so mesh is basically the exact same concept as an entity in in uh a frame it's just then a different term for it and then you like 3 box geometry 111 so this is like the geometry so here we have that and then we need a material we learned that earlier on actually let me reformat that a little bit so that's a little easier to see so like it's a mesh basic material and by default that's going to be white so that's going to be okay and then we close this one and then we say like this set object 3d mesh and now our component actually explodes because this set object okay right ah is it ah maybe i'm an idiot let's see i might just be an idiot no i'm not an idiot okay cool that gives me this element object 3d all right i know it takes an ah damn it because it can have multiple of these we're just going to be like the mesh shall be this mesh and then hey look at that our solar system is now a white box uh very exciting um i'm dying of happiness um this is this is one way of doing it and it's definitely the more flexible way but that means that you have to learn 3js to write your own components but what if i tell you that's not true another way of doing this kind of thing is by saying look at that we have this element is actually the html element that we're in so we can append children to it now how do we create one well it's an html element so what we can do is we can say okay i i want the sun because we have to have a sun we are solar system we have to have a sun come on um i want the sun to be an afame element an a entity so we create an instance of an of an a entity tag which is what the dom does behind the scenes anyways when we were writing the html and then i can say like sunset attribute uh let's say like emissive oops uh oh this is not what i wanted sorry for that emissive yellow oops what the hell and then we append the sun to the current element so emissive is a property of light or we can use that directly uh you can actually use that i was no you're right i'm an idiot it's uh it's the material component that has like emissive yellow sorry that was my my bad very good point very good for pointing that one out before i'm like what the hell is going on here and by the way i i kind of want to move this around a little bit so right now it's under our camera that's also like not very nice let's move this around tiny little bit so that we actually see it in front of us uh huh why is it not doing it oh because we yeah another thing is obviously uh i forgot to set another component which is the geometry component so yeah that was not very smart um geometry primitive sphere so we're literally like using the dom api to create this for us and here we are and then what we could do is uh we can move forward so let's let's say like four var i equals zero i smaller this dot data dot number of planets i plus plus we're going to like var planet equals document create element a entity so this is this is now starting to get repetitive hopefully um that's really basically it's screw this crap i'm like just gonna you know screw it let's let's do that um for the sake of simplicity we're just gonna make them all i don't know red um it's not sun anymore it's planet that was my bad copy and pasta error and then we say like sun append child planet also we probably want to move the planet a little like somewhere else so we do like set attribute position is like uh let's go like i times 2.5 meters plus well that's the better in the way now zero zero yes i'm hitting an initial offset so we are now moving them a little off and then we are pending the the planet to the sun uh there's a bit of a problem now that um wait where's my planet no i do not get my planet uh oh it's big ah that's what you meant with an offset yes i vey okay right yeah that makes sense um 2.5 plus only times 2.5 so that we do not start with zero there we go it's quite large isn't it uh so maybe we want to do like planet planet set attribute scale so like i don't know um 0.25 0. oops 0.25 0.5 so that we get like a smaller planet but basically that's that's it uh we would now have to work out how to deal with this when the number of planets changes um alternatively we could always like recalculate i mean the the number of of planets is probably not going to change as often so what we could do instead is we could say like okay so the sun is not never going to change so we don't have to do this uh so what we can do is we can say like instead of sun actually we can do like that and then like this sun equals sun so that we have a reference from it and then we take this off into the uh the update function and what we can do theoretically is we can say like this dot sun dot inner htm there's definitely better ways of doing this but like for the sake of simplicity this is fine so like this dot sun uh because what should be happening now if i'm not oh wow what oh is it calling wait wait wait wait wait am i doing something stupid right now because i probably am i think actually it's oh shit it might actually be oh my my tab died good night um it might actually call it when we are updating the the children but i'm not sure it shouldn't actually so let's see huh now it doesn't now it works fine okay whatever um oh no this is the wrong nope still the wrong key hello uh there we go um control out i so if i now zoom zoom zoom if i now go in here and i say okay this thing here shall have three planets then i'm wondering what's happening oh there we go three planets surprise surprise and then we could do like all the the the animations and all that basically the tree can get more complicated and then we could move it if moving is true so you can build these these components like that and i prefer it over the 3js way for most of the things because it's it's how components can easily uh kind of be composed together to build more complicated components but then again if you really need the 3js objects don't shy away from them it's not as complicated this is still a really nice um abstraction over the raw web gl also you can do things like you can actually query the children inside of your components so you can say like if you want to change the way that the sun looks or if you want to give me a different entity for the sun then just give it an i don't know class or something and then i can just load that from what you give me instead of creating myself yeah it's yeah it's possible there's also a callback and components have a callback that is called when the children change so you can even observe that so like it's it's a really flexible system and the the dom makes this relatively easy to actually build this kind of thing so we can get to all of these components through the dom yes yes they're all represented in the dom there's one exception so as i said like the a-frame does these optimizations um for the attributes so uh they they turn it turns the attributes different component attributes into objects which the dom does not support right so you have instead of position as a string zero zero zero you actually have an object x y z zero zero zero um it doesn't always update the dom immediately so if you really really need to export that to the dom there's a function called flush to dom that you can call to actually get like the string versions back into the dom that's causing a little bit of a frame rate rate drop for us like for half a second or something whatever um but if you really need to export it that's the way to go like i've seen people who have like an editor where you put something together and then you click a button and then you get like a text field with the html inside and they're like oh it's missing all my information because it's not unless this goes like solar system equals empty string and it's like no there's information in here like number of planets should be five and it's moving should be false and you can use flush to dom to make that happen like to make it flush it out as a string to fix that the individual so here we've been setting like the whole position string at once can we set just the x or just the y you can do that by using the the javascript method that i used early on so basically what we would do is you would go like um let's let's just do like pseudocode yeah entity components position data z equals five and then you would have to yes i know it's not an actual actual thing you would then have to call update manually to make sure that it's actually like reflected in the component but that's totally possible no i don't want to what no go away um so yes it's lunchtime i already no actually i did not steal any minutes yet it's like three we have three more minutes do you have any questions anything else that i should cover yeah would you recommend for documentation for example for light just looking at the a frame docs it doesn't describe the types of life are you sure about that uh when i want to like the light it said it should i guess it's a drop down on the side for different types oh yeah right yeah right yeah we have like them here listed out in in quite a bit of detail actually okay so just a frame io the a frame a frame documentation is really good there's a there's a slack for a frame you find the links in in the a frame on the a frame site actually so like here's a community tab that has like the documentation github stack overflow stack overflow is also really really great um to if you have actual questions um but the slack is really really helpful as well if you have any questions you get quick help there uh yeah go to meetup groups that are doing stuff like that if you have some some nearby i don't actually know if there's that many meetup groups around a frame yet but i would i would recommend the slack if there's anything that's not clear in the documentation because to be honest like the the project is relatively young isn't like it's probably like a year old maybe now or maybe like one and a half or whatever it's it's not that old yet so there is holes here and there but everyone's like super helpful in making sure that you understand everything there's a few mozilla people at the back by the way um hi long time to see um and like everyone's like super helpful and if you find something that's missing all the documentation is on github so you can literally just edit the page make a pull request and then make it better for everyone sorry yeah exactly who's staying for the afternoon afternoon workshop it's a few people uh i think so theoretically they are all full but i highly recommend if you're really interested in just stay for the afternoon workshop you might get a seat if you're lucky um just stay around and see if there's like spots left uh and then just you know hang out because it's gonna be super cool it's gonna be an advanced workshop and you're going to do the the city thing right yes yeah i mean the reason why i'm super excited about a frame and why we are also actually excited about it at 3d io is that it's relatively easy with a few lines of code to actually build things like this for instance so we have like an application that loads this entire thing and you have like camera tours that take you to the different rooms let's go to like bedroom too i don't even know which one it is that one okay fair enough and um if you look at the code it's actually not that complicated so you have a bunch of css okay cool yes sure um and afterwards you have a bit of a bit of um oops shit what the hell is my no why is it navigating when i don't want to navigate and then you have like um a bunch of buttons you have a logo here which is literally just an image uh you have a map which is like the the um the thing and then you have the buttons that that use a frame components here you see exactly what i showed earlier on like components dot tour it has a go-to method it goes to a certain bookmark uh and then it just does the magic in in the a-frame and the a-frame code itself is what jesus christ my computer goes bananas no don't navigate away when i try to what the heck okay right um the a-frame code itself is basically you have the camera you have the different tool waypoints and uh you have like a light and you have here this is the apartment and that's it right it's like it starts here and the actual scene is done here and the rest is just like specific like like tweaks and nice nice tease so it's not that much code it's not that hard to get there uh and you can basically build like really really cool stuff really quickly and it's like super flexible huh yes so check out your local communities uh check out meetup and just play around i think the most important thing is to just like start playing around with it thank you very much enjoy lunch and um yeah if you have any questions i'll be around at lunch


Sam here with late in sports cards doing 2018 and 21 Panini prism football hobby two box mixer number two random team style. Here's a look again at your random results Starting with Shane as always you can find these on the website under the results tab as well as the link that is currently in chat So good luck everybody. Let's do it sorry 21 We broke the Super Bowl mixer down into a couple of smaller like breaks today Didn't fill as quickly as we wanted it to so we decided decided to break it down into Smaller breaks and then do a 50 box mixer at the end of the night as well and Helen Maan There's a blue wave DK 170 out of 199 for Seattle nice one there at Seahawks and Microcarter wait, what did you see what did I say that I liked 600 times the other night? Oh god? I only imagine what that's gonna be can add one move there's Kenneth gain well on the hyper for the Eagles That is 112 out of 175 and wild card points, which sometimes means there might be a monster auto So I'm not gonna say anything but that sometimes is an indicator So good luck. Hopefully I'm right The two times that has happened There have been good autos Baker Mayfield the 225 Michael Thomas that'll work Jalen waddle nice one there 109 out of 149 Congrats on that Miami. He's got the Dolphins. That's kind of nasty Harper B. Congrats Harper Come back that 140 buddy. That is fantastic 109 again at 149. We'll take that As you hear about that so a few nights ago, we just start I started Saying instead of like the I like turtles kid just saying I like photos Davis mills shy Smith. There's an orange Adrian Amos to 249 and Jane Collins rich Rich pinned to comment saying like the Super Bowl mixer got canceled and he goes guaranteed doesn't help but attend Anthony Schwartz rookie There's Brevin Jordan. We got a green scope a brashad a pair of men for the Lions 62 out of 75 Yeah Snake skin, there we go. Come on, baby. Let's see something big with the Jordan side Michael Carter Ernest Jones. We've got bucks Non rookie La Fonte David. That's kind of sick on the case hit snakeskin Congrats on that Jason T with the Buccaneers very cool Justin Fields and time people out To get some give us some time to think about what they did. It's gonna be the next next Travis ETN rookie Very bright. Well, there's a purple of that Oliver 45 out of 125 about your choice. It's glad Edwards a layer Stop it. Stop it. Get some help orange wave Sean there's Mike Evans best friend Sean Slater pet for our mute Orange wave Noah Gray for the Jeeps that is at 28 out of 60 nice one there silver juju Smith Schuster Yes, origins football divisions is on sale as well. Everybody. There's a Justin Fields We've got Jeremiah Zucoramoa. There's a blue wave Kylan Hill 173 out of 199 for the pack silver is all out. Hock blue ice coming up here But it doesn't even Jordan. I don't even want to imagine what middle schoolers are doing with the whopper song right now. I Jemonte Williams rookie, there's a blue ice LT. That's kind of nasty 7 out of 99 for the Chargers with Danian Tomlinson LT. That is Trevor Lawrence fireworks and oddly seats Ross and a maverick I'd be kind of in on Terence Ross being a Dallas maverick at Mike Matt Jones, or is this a personal is that for sale? How much? Gronk blue wave to 199 for the Buccaneers bucks doing well. Yeah, there you go. Exactly silver Tyler Higby Nice Yeah, playbook will be fun at the end of the day Red wave as well. I think we'd all need a darkness retreat forest Very roundtree. There's a Devonta Smith. All right, I'll Chris is getting banned brashad a pair of men To 149 Eric Stokes silver rookie now. Let's do 2018 I can't believe I pulled two numbered brashad pair of men's in one box. That's ridiculous 2018 good luck everybody Lamar Lamar Lamar Lamar Darnell Darnell Darnell Allen Allen Allen. Yes. There we go. Actually Allen Allen Allen I know Bernie do it Pappete Tyrod Taylor Brown's legend Raven's legend Raven Super Bowl champ Tyrod Taylor. That is golden tape DJ Moore on the blue scope rookie. That's sick. Let's go into the Panthers. Nice one there Carolina 14 out of 99 Duke Dawson Mike is sicky rookie. I've been haunted by Santa Donald's ghosts in the past Just out there. I'm seeing ghosts man. Marquise Lee Big thing silver Tim Brown Die cut Mike will that is to a 199 for the Chargers carry on Johnson and Armani wants I know yeah, I should Ooh gold That'd be so sick Give me a gold Lamar one time one freaking at time It's gonna be Gold Cam Chancellor BAM BAM Cam Five out of ten. Dude, that's sick. That's going to the Seahawks. Congrats Seattle BAM BAM Cam Chancellor Legion of boom Kyle Lolletta DUI legend Kyle Lolletta Orange Aaron Donald to 499 there's Braxton barrios honey, not barrios for the Patriots the Ron Payne for the Redskins Sell my soul for that could be an RPA That'd be an RPA Hey, Jim McCarron is a bill. Wow Josh Dawson to 25 Josh Allen Bernie let's go buddy patented penmanship 19 of 25 That is rookie Allen. Yes, that is that would be mr. Rookie Josh shoot Joshua Allen From Wyoming and that's insane. That's that's insane Sam Darnold right behind it. Let's go, baby We're seeing ghosts out here everybody. We're seeing ghosts Let's go that Alan's making a sea ghosts as a big-time card burn Let's go, baby Let's go, baby. That's big time. It's a big-time challenge right there Silver Carlos hide that might just be that might be as big As well as Kurt Benkert Wow silver auto for the Falcons.  That's pretty cool.   There we go Yeah, he just want a foot is a fortnight player Kirk Benkert is a fortnight player now You're here first ladies and gentlemen Let's go, baby. That is professional fortnight player Kirk Benkert Illumination Derek Carr There's Ronnie Harrison hyper to 275 for the Jags Lorenzo Carter Anthony Miller. I did not know Benkert was a wahoo. That's awesome. There's Ray Lewis Silver hyper Kyle Rudolph to 275 Christian Kirk nice one there and Roquan Smith Ravens legend now actual kind of Ravens legend Excuse see it and for that. Wow That's quite the the duo right there green ice. God. I miss green ice Brandon Marshall. That's Seahawks Brandon Marshall Wow To 275 no to 75. Excuse me Thanks, Bernie. Appreciate you buddy Dallas Goddard and Fred Warner nice ones there flakaroni and cheese Mike will ooh Wow Fred Warner auto now, holy cow, dude What a box what a box of prism Fred Warner color match red wave to 199 I want the best linebackers in the NFL Congrats on that San Fran Bernie again That's Dalton Schultz rookie and Rashim green dude. This is such a good class Like from top to bottom. This is a killer killer killer class Tyra Taylor. That is to 199 Coraline Sutton rookie to Sean hand Kid reporter stew this point's raining really quick Again wild card to grab all the teams. All right guys gonna roll the dice whatever team is on top after Seven times look at the points. Good luck guys one two three four five six seven going to the Bears going to the Bears Hey, thanks, Yogi for the gifted Recap man We had a Levante David snakeskin Blue scope DJ more to 99 gold BAM BAM cams Chancellor to 10 Sam Darnold rookie. There we go. Let's go big-time hit right there kid reporter even bigger I have to say I mean we're just climbing up your Kirk Benkert. That's fortnight player Fred Warner's red wave to 199 for the Niners. That's awesome. We've got a red wave Jalen waddle to 199 Patented penmanship Josh Allen number to 18 of 25 prism rookie auto that'll do it for the break guys unreal Next up we got number three


connections. I'm your host, Grace Cheng, talking to Dr. Mark Gilbert, the National Endowment for Humanities Chair, Endowed Chair of World History at Hawaii Pacific University. And we're going to be talking about India and the contemporary global economy. So I'd like to welcome you, Mark, to the program. Nice being here. Thank you. Thank you for coming. And very excited to hear that your book on South Asia and World History, published by Oxford University Press, has recently been released. Just released last month. Very exciting. Can you tell us a bit about what the book is about? Well, there's a field called World History. And it's looking at larger patterns, you know, rather than, let's say, a national history, you know, a very in-depth, detailed look at one country. Instead, we look at patterns that exist almost in all countries. But we don't just compare them. It's a way of getting a deeper understanding, actually, of any individual culture, nation civilization, because they're not in isolation. Whatever they're doing, they're doing it because something has happened external to their own culture. They've either hybridized it, synthesized it, or adapted to it. I think Japan is the most homogeneous culture. But its religion doesn't come, Buddhism does not come from Japan. And the form of Buddhism that comes to Japan is both global but unique to the Japanese. So that's the kind of thing we like looking at. And India provides many, many examples of that. Oh, yeah. Yeah. I mean, it's a very diverse and large civilization, just the civilization itself, like we think of it as a country. But, and your book covers, like, just an impressive range of historical periods from 5000 BCE to the present, which we hope to catch up today. Yeah, like what? That's 7000 years. What is it? National history is easy. World history is hard. But those patterns are, for example, every Neolithic civilization has its own patterns. And yet they do have commerce with each other. Then after the commerce starts growing and cultures become in more contact, then you start seeing more borrowing, not so much borrowing, but using what they learn from other cultures. Of course, the West is so much so a part of that process. But we're so proud of what Western civilization is, we don't recognize that it comes from, let's say, Greeks through Muslims. Right. I mean, yeah, that's the thing is that we're fed a big diet of national history, which is really like, you know, establishes boundaries as to like what people in our nation have achieved in the past. But I mean, really the reality is with what I think world history illustrates is that there is so much cross-ferralization throughout all of history, among all different groups throughout the world. And you might argue that kind of approach is needed more than ever, because we have this tendency towards turning inward going on throughout the world in almost every culture, trying to identify a kind of er, you know, basic nature of who they are. And yet nobody is a product of that. That's a, if in fact, when you dig deep enough into that origin, it turns out either to be very diverse or not politically correct for the people who are saying, we have a, you know, this very special, exceptional culture. Turns out they're no more exceptional than anyone else. Yeah, certainly. And so we're interested in kind of talking, hopefully, you know, we'll cover the Indian role in the global economy today. So, you know, I know your book starts off really far back in history. And of course, Indian civilization is so ancient and rich. But talking about more contemporary or more recent connections, you know, I think most Americans know India best for Mahatma Gandhi and, you know, and so there's that link, Gandhi and Martin Luther King Jr. and their kind of civil disobedience movement. Yes, yes, exactly. Well, it's really interesting because there are kind of layers that you can pull back. Gandhi grew up in a part of India, Western India, Gujarat, which was a center of what's known as Jainism, a religion that believed in harmlessness to all living things, and that if you harm living things, you do so as an act of will that is attachment to the world and it soils you. You don't have to kill things in order to survive a living thing that experiences pain. So the result is that you have this religion that is extremely opposed to any form of violent act. So he has that background kind of in his in his blood in the soil that he lives in. But he came to nonviolence through a process of self reflection, but also because of influences of others. The India had an ancient tradition of civil disobedience. When you have a caste system and social hierarchies, there have to be ways in which justice can be done, despite divisions between people by social rank. So there are holidays in India where the low rank throw gets to throw stuff. So there have to be ways of negotiating it, negotiating those spaces anyway. But Gandhi was impressed with three other people. One of them was John Ruskin, who was an Englishman who believed very deeply into, well he was very important in a craft's movement. It is going back to what we would call basics. It wasn't a hippie, but he was very influential in that aspect of looking into the soul and getting at the essential things. Also influential was Tolstoy, Count Leo Tolstoy. Tolstoy had set up communities in Russia in which people practiced the art of living together rather than in competition. And Gandhi, of course, has this ancient tradition in India called an ashram. But the idea of having ashrams to gain a political consciousness within a community rather than the individual achieving moksha or nirvana. And so that impressed him greatly and had a great deal of influence on his retreats, which he lived in and worked in and operated from. Martin Luther King, of course, didn't know Gandhi, but he was a Christian. And Gandhi knew Christianity extremely well. His closest friend, CF Andrews, was a missionary. He's actually played by a wonderful actor in the movie, Gandhi. So you get a sense of how close emotionally they were to each other, basically definitely committed to the needs of humanity. And the result of that was the Sermon on the Mount made a great deal to Gandhi. And it should, to everyone, desire things for other people rather than yourself. Take care of people who don't have even what you desire before you seek it yourself. So as well as the other well-known passages. And that had a very important aspect of his life. So it's not surprising that Martin Luther King would actually find Gandhi appealing. What Martin Luther King did that Gandhi pioneered as a philosophy was a taking on the anger of your opponent as a means of forcing them to see what they are doing and have an opportunity to repent of the behavior. If you attack someone, they just get more angry at you. But if they attack you and you do nothing, it forces you to ask yourself, what am I doing? And this idea actually exists in the Mahabharata. It's one of the ancient epics of India. But this idea that you can resist by not resisting. And that sparks anger out of guilt. And that guilt can be handled. Someone who hates as a result of what they perceive as violence, it'll be very difficult to change their minds. But when you receive their violence and you don't fight back, it does force self-realization. And Gandhi argued that this was the only way when you're dealing with a superior opponent. He got in trouble with people asking who about Adolf Hitler after the Holocaust and said, would nonviolence have helped the Jews? And he had many, he had a lot of humor and sly irony about him. And he said, well, it wasn't tried in the 1930s. He said, but if it was a tried at the beginning of oppression of the Jews, enough public attention might have been raised. And he said, look at what happened with the alternative. But of course, Jews accepted that they were not going to be executed, that they lived in a civilized society in which there had been problems before. So they thought they could get past it. But the British didn't, the British used that against Gandhi and said, it's like when people like Spicer makes an error speaking for the government about the Holocaust, people are very sensitive when millions of people die. But Gandhi weathered that, explaining that in every other case that we know, governments have not been able to withstand a public protest that's nonviolent. When there's a mirror put up to them, they have to force themselves to look at what they are doing. And for other people to see that. To see that too. Look at the civil rights movement. Of course, this was what Martin Luther King was doing. But King was extremely fortunate because he lived in an age of radio and television. He could reach everyone. You need that publicity to work. Yes. And Gandhi had to do this without television, without, you know, what is it? Newsreels that only a few people saw and bear radio. And yet everything he did was so visual. But because of the drama of it, it managed to go around the world. My father, who was an Olympic swimmer and later a decorated soldier in World War II, he said that Gandhi was his idol. So when I said, I'm going to be studying Indian history, that was the first thing he said to me. So he had an effect. But I think Martin Luther King gets a special accolade because he had a population that he could, that was what do you call it, united. Whereas in India, Hindus, Muslims, Sikhs, etc., he had a united population. He knew how to appeal to them directly. And he knew how to be righteous before the Lord. And that was really amazing. Stands alone. But if you go to his museum, Martin Luther King National Center in Atlanta, there is an entire room devoted to Gandhi's publications that he collected. And his trips to India, where people were very excited to see him and identify Gandhi and Martin Luther King together. Yeah, yeah. Fascinating influences and how they travel. And going back to, Gandhi is known as also a great leader of India's independence movement, among other things. And interesting about India. So today we know India is kind of an emerging economic power. But really India and the other South Asian economies, after independence, they didn't, they didn't lean towards like a free market, competitive model. Maybe this is the Tolstoy collectivist. No, it actually has to do with Cambridge University. Oh, is that right? Oh, okay, another source. Yes, it's another story. What happened was in the 1930s, there was tremendous popular feeling about what the Soviet Union had accomplished in a very short period of time. Very few people were aware of the cost. George Bernard Shaw went to the Soviet Union and he said, oh, it's wonderful. They were shown Potemkin villages, all these other things. But young people, by the time they were going to school in the early 30s, were very impressed by the Soviet experiment. And people from the outside the developed world were also even more impressed because the Soviet Union was going from what they are, which an agrarian society, and moving very quickly into an industrial society. And as the 30s went on, that industrial society in the Soviet Union grew faster and faster and faster. So at school, they thought collectively going to school that this is the ideology they should pursue. And they had lots of left-wing teachers who had the same point of view. What a wonderful Soviet spy, I suppose. But anyway, the idea was that they came by genuinely. They needed a new solution. Capitalism was associated with imperialism. And so they needed another way. And you see this all over the world. Ho Chi Minh, for example, when he came to Paris, he would most be a socialist. But after World War I, where the West turned his back on the developing world, he looked for a more dynamic solution and found it in communism. So starting with the 1930s, people like Nehru, Jharul Nehru, the first prime minister of India, he left university in England to join Gandhi's campaign in about 1919, 1917, 1990. And he was a devout socialist, but the money that drove the nationalist movement was all for millionaires, like Birla's very famous one, textile industry, the owners of concrete, the Tata industrial empire. These were intravenous that were so successful, even the British couldn't suppress their factory activities. They tried hard, but they couldn't. And so they were giving money to the independence movement because they believed that Gandhi could get rid of the British. And I think they also believed in Gandhian principles, but they also knew it was in their self-interest. So when independence came, I don't think most Indian leaders wanted to bite the hand that fed them. I think that's an exaggeration. I think that people are motivated by more things than just money, at least in India, all the time, anyway. And so the result was that a mixed economy made more sense. Kwame and Krumah said, Sikhi first the political kingdom, and then everything good will come from it. The idea was the government should operate from the commanding heights, and that would be a power transportation, the main industries that very often become monopolies in terms of private enterprise. So the result was you had a mixed economy with the government owning these the larger means of production, but entrepreneurial is a rife as it would always be in a country that was entrepreneurial from the day one. Harappa, around 5,000 years, well, 2,500 B.C., were enterprising merchants all over the Indian Ocean and as far as Egypt. So we can expect them to continue on in that tradition, and they did. But there were problems, but you might know there was a thing called essentially rule by regulation, and there was just so much bureaucracy it was actually holding back industry. And Rajiv Gandhi, as Prime Minister in the 90s, simply attacked it and also sponsored new technology and a service economy over a manufacturing economy. And the result was by 2,000 over 6% growth every year. So we'll come back and continue this conversation, Mark. Okay, so you're watching Global Connections with Grace Chang and Mark Gilbert talking about South Asia and the contemporary global economy back in one minute. Hi, I'm Carol Cox. I'm the new host of Eyes on Hawaii. Make sure you stay in the know on Hawaii. Join us on Tuesdays at 12 noon. We will see you then. Aloha. Freedom. Is it a feeling? Is it a place? Is it an idea? At Dive Heart, we believe freedom is all of these and more, regardless of your ability. Dive Heart wants to help you escape the bonds of this world and defy gravity. Since 2001, Dive Heart has helped children, adults, and veterans of all abilities go where they have never gone before. Dive Heart has helped them transition to their new normal. Search diveheart.org and share our mission with others. And in the process, help people of all abilities imagine the possibilities in their lives. You're watching Think Tech on ThinkTechHawaii.com, which broadcasts five live talk shows from noon to 5 p.m. every weekday and then streams our earlier shows all night long. Great content for Hawaii from Think Tech. Aloha. Welcome back to Global Connections with Grace Cheng. I'm joined by Dr. Mark Gilbert, the NEA's Endowed Chair for World History at Hawaii Pacific University. So, Mark, we're going to continue our discussion about South Asia. And we're interested in specifically, especially India and the global economy today, but we're talking about what's distinctive about South Asia. Just talk about, touch upon another South Asian country, Bhutan, which is probably less well-known, but it is known for its idea of trying to reach the highest level of gross national happiness. Yes, instead of gross national product. Right, right. Yes, exactly, gross national happiness. In contrast to the economic goal, yeah. Well, we're very fortunate here in Hawaii because the NEH National Government Humanities Council in Hawaii and also the Museum of Art, I had a massive Bhutan exhibit a few years ago. And so we should hear in Hawaii be better than most people when you just say Bhutan. It's true, yeah. But Bhutan is a very special place because it's really all that's left of traditional Tibetan Buddhism and Tibetan Buddhist culture. It was a monarchy for hundreds of years. The British, like Nepal, chose to allow these states to be independent or at least autonomous in their internal affairs with a resident that would watch over it. But unlike Nepal, Bhutan was able to remain aloof from most of the rest of the world and developed a very environmentally sustainable way of living and also developed a monarchy that was very identified itself with the people. So about two decades ago, the king decided that with the way things were going in the world, what we call rapid cultural change globalization, as if the people never left Africa and spread throughout the entire world. It's the pace of connections between peoples and cultures and continents that is different. And he saw this change coming very quickly and he knew that Bhutan could not keep pace with it. So he decided that he would abdicate eventually. But he would put in place a system of education, of democracy, and of development that was suited to the Bhutanese people. And that's what's known as the movement towards gross national happiness. But what's interesting is the people didn't want it. For the most part they love their king. I remember there was a unionization of a business and the manager prevented unionization simply by taking really good care of his employees and making sure that they were happy. Then there was no need for unionization. I'm speaking of my father, by the way, who was pro-union. But the issue is that the king managed the state so effectively that people saw no need for him to abdicate. But the real benefit, of course, was that this gradual process enabled his much younger son to be able to start off as king, as a mature adult, and with a wide understanding of the rest of the world. And also did away with the idea of what England is facing now in a different minor key, which is a queen that simply keeps living. May outlive her son, for all we know. And so this enables the idea of transition, it becomes more possible. And there are lots of educated Bhutanese who saw the value of it and also saw the pitfalls. But Bhutan is very fortunate amongst other countries besides its kind of Buddhist sense of collective good and also a king that believed in it. But it happens to have water resources. Because it's in the Terai and then the Himalayas itself, it has plentiful water which everybody wants. It's a big problem in India today. And also China, indirectly or more directly. But the important thing is that they decided to take Chinese money and build gigantic power generating and, well, water generating plants that produce electricity that are literally buried in mountains. So you can't actually see them. And they're engorges that don't have people that need to be removed. Because essentially in India, you have to flood lots of terrain and then essentially, and with the angst, three gorges. Lot of controversy. People don't get the removal benefits they thought they'd get. And in India, the Supreme Court has simply turned away from them. We can talk about that if we want. But the idea is that it doesn't harm the environment. It generates things that people need. And at least for the next 50 years or so, there'll be plenty of glacier melt for them to profit. Because India will buy all the energy and all the water use that they can get. The problem is, yes, they're a small country. As things get hard and harder as the environment changes, well, we'll all be in that same boat here in Hawaii and everywhere else. So it'll be interesting to see how they negotiate that space. As I'm always interested in seeing how my students will write papers on the subject and come to some kind of conclusion that isn't depressing. Because it is a remarkable, remarkable experiment in building a nation and a community. Oh yeah. And I mean, in this kind of coordination at the regional level to be able to do this in a thoughtful manner, not kind of in a rush to reach high levels of growth. And so I think that's, yeah, that's promising. That's a good thing to hear. And there's also another thing, this problem of immigration. Almost everybody has migrant workers who have become part of their society and find themselves identifying with it. And many Nepalese had done that under the old regime in Bhutan. And when the new regime took over, they saw the necessity for pushing some of them out. And this was very controversial. More recently, some have been let back in. So that could be a lesson to everybody. Back into Bhutan. Back into Bhutan. So listen to everybody that, you know, how you handle what I'm sure it's in the Sermon on the Mount. How you handle your immigrants is how your soul represents itself to God. So it's interesting that the Buddhists in Bhutan understand that. Yeah. I mean, this migration, we're hearing a lot of this controversy, right, with the Rohingya migrating, being forced to migrate into Bangladesh. I mean, the region, these kinds of national borders are creating all of these kinds of controversies.  But you know, some of the reasons for it, right, is problematic. But you know, back to India as an emerging economic power in the world. And we hear a lot about India and China. But you know, what do you think? Do you think that there is a claim that the Indian economy might pass the Chinese economy in the future? Well, at least be number two to China. And the United States being third, I think, in that particular thing. Well, it's interesting because, of course, we all live in a precipitous view of the world, right? So China is this rising dynamic economy. American money from purchasing Chinese goods is vastly expanding the Chinese economy. People, the group of tourists that Hawaii is looking for in the future are Chinese. They spend more money and spend more every day as tourists than Japanese tourists. Passing on the consumerism. Passing on the consumerism. There's no question about that. Yes, there's a thing called capitalism in China, but it's known by the word, what is it? Socialism with Chinese characteristics. And the problem is that the population is aging rapidly in China. The one child per family was a very good policy considering the alternative, which was massive overpopulation before the Chinese economy could even cope with it.  And China is grappling with that all by itself. Also, China is about the same size as the United States, but it only has the arable land of the 13 colonies. So it's very vulnerable. It has not been successful in attempts to stop desertification. It's working hard, planting trees. But as recently just happened in Beijing, it's been the dust has raised it to 800 units. And 100 units is helpful. And how does India compare as far as land resources? Well, if you look at Delhi, the same thing. Delhi is becoming rapidly unlivable because of industrialization in that part of India and the prevailing air currents, which is off the desert as well until you get to the Himalayas. So India has a younger population. It is a democracy. China is not. China has the advantage of long-range planning for big industrial development. India has thousands upon thousands of entrepreneurs. Going back to its roots as almost literally an international civilization. And so the result is that you can expect India to achieve the same things that Western economies have achieved. For example, they make generic drugs equivalent to that. And they don't charge $100,000 a month. What's interesting is that India is part of a consortium of essentially selling retroviral drugs to Africa for virtually cost. Whereas the American capitalists, even Warren Buffett and Bill Gates, having stood up for that, Bill Gates has of course helped eradicate the river blindness. But you don't see that kind of international commitment that Indian corporations have made. Because it's good business in the future. And Indian merchants in the past, as a kind of adjunct to British colonial enterprise, were seen as a kind of suspect merchant class. And there is this entrepreneurial, as well as innovation in the spirit that we can see. Given the limitations that both the Indian Chinese economies have, but that innovation in entrepreneurial spirit is quite important. Which you address. And we hopefully can have you back to talk about this in more detail. Because we are out of time, unfortunately. Or new things like Bangladesh. Oh, yes. I mean, South Asia really is a fascinating region. Many things to discuss these days. So thank you so much for being here, Mark. It was a wonderful being talking to you. Some other time, please. All right. Thank you for tuning into Global Connections with me, Grace Chang, and my guest, Dr. Mark Gilbert from Hawaii Pacific University. Join me here every Thursday at 1pm. See you next time. Aloha.


Basically what I want to talk about, because this is not a political function, that's not what you're about, it's about protecting your rights and your constitution. So the reason I was asked to come speak is before, if you don't know what happened in St. Charles County, we lost the sheriff. Now, I'm running for sheriff, but it's a whole different entity than what it was while starting in 2015. There will be an appointed chief over the patrol division, which is what protects you. And then what I'm running for is a sheriff, which is over the court's prisoner transport, so a process. And what a lot of my guys ask me is, why are you doing that? Because, you know, my guys from patrol want to keep me in patrol. But one of the main reasons I'm running for it is wanting to protect what we already have from the bailiffs, the prisoner transport officers. You know, they don't want to lose their power and I don't. I came through the old school. I started in the jail the way you're supposed to, but I think you're in your way. I started in the jail, worked to the courthouse and then go to patrol. So the reason that I'm running is because I want to protect their rights. Because we're going to lose them. I mean, they've been lost over here in St. Louis County with that. Because if you don't have a strong sheriff in there to fight to keep those, then they're going to lose them. But off that subject, because now it sounds like I'm speaking politically to vote for me, but you can vote for me if you want to. But what started this is last year, well, two years ago now, our current sheriff, Tom Neer, was behind this deal to get us a chief of police to get us out basically to take the power out of your hands is to simplify it as simply as we can. His reasoning, because I've been asked a couple of times here, what was his reasoning behind that? His reasoning to us and to the general public was to take politics out of the department. Well, anybody that works in any, not just law enforcement, but any job that you have, there are politics involved, correct? So we were fighting and we fought really hard and we lost by a slim margin, but we lost. And the reasoning that I put when I would go talk to people is you don't want to lose control of the sheriff. If the sheriff is not accountable to you, who's he going to be accountable to? And in this case it will be a chief. That chief will be accountable to a county executive who's accountable to nobody. I mean, technically, yes, he has to run for office, but he gets to make all the rules. And I want, so my reasoning for running for sheriff of basically out of law enforcement as we know it is so that while I'm in that position, I will fight to get this back. Now there's people that are petitions and there takes, I believe, 16,000 signatures to get it on the ballot. So that's one of the things I want to assure you is that we have to fight to keep our right. If that, what we call what's been called the top cop, if he's not accountable to anybody, what's going to happen? Or what's potentially going to happen? And that's what I'm afraid of. We have a constitution, we had a lot of people fight for us to get us to this point and we don't want to lose it. And right now in St. Charles County, as of January 1st, 2015, it's lost. Now it's not a hopeless cause because you still have the right to get a petition going. That's a lot of work. But also if you've got somebody in there from the inside, which is if I get elected, I will fight from the inside to get this change back. And one of the things that I've talked to, and I've talked to several people at the Republican committee is to get the people to put pressure on their county council people or whoever because if the constituents aren't going to vote them in, they'll do whatever you want them to do. They can get it on the ballot by just saying, county council people can get it put on the ballot without a vote. And then it can go to the vote of the people. Otherwise we've got to get all these signatures and things. It'll happen, I believe that because going around and talking about the different entities in St. Charles County, I was amazed at how angry people are that they lost this right to vote for the sheriff. So this just goes along with the Second Amendment. I mean, you have the right to put that person in power that you trust that's going to protect you and not protect, per se, the government or whatever that is. That's why Missouri has its own constitution. Each state has its own constitution. So I just wanted to talk about how, kind of make you aware of what's happened in St. Charles County. I talked to Chief Fitch, who's now retired or resigning, because he's the chief over here in St. Louis County, which is a police department. And I asked him because the sheriff had him come over to talk to our county council and our county executive when this was trying to get on the ballot. And it did make the ballot, which is why we lost it. But Chief Fitch said it's six to one half a dozen the other. Politics is politics. So the bottom line is whether you want to keep your right or you just want to give it away to whoever wants to appoint that position. So if you want to know what's going on in St. Charles County, you've got people here you can talk to myself. But if you are in St. Charles County, help us. Chuck Marley's got petitions going too. He's helping over there. But I just want to reassure you that I'm behind and for and always have been. Be accountable to you, period. The bottom line is to be accountable to the people of the county. And that, is there any questions or anything? Perhaps you could address on the constitutional powers and authorities that are given to a sheriff versus the chief of police. Well, based on the constitution is that the sheriff is what I said the top cop basically has overall authority within that particular county. So when it came if it come down to catastrophe, the sheriff actually has over the overall power of what's going on, which is why all the emergency management and all that falls under the sheriff. So the chiefs are just a sub entity of the sheriff to simplify. I mean, they don't answer the sheriff, you know, each chief in each community is their own entity. But if in a massive thing, yeah, the sheriff. One of the questions I have is, as a sheriff, let's say the federal government were to come in and, for example, let's say you've got a farmer in St. Charles County and the feds want to come in and destroy all this milk because he sold raw milk to his next door neighbor or something like that. Come in and dump it all out on as sure as you have the authority to say, no, you can't come into my county and do this. But as an appointed chief of police without the vote of the people, do you still have that authority? That authority would go to the county executive. And technically, yes, would you still? The way it's supposedly to have it set up, because from what I understand, there are a couple of lawsuits going on against this through the attorney general. And I don't know the specifics on it. I just know the couple of people. I know Steve Ableton is one of them that has filed a lawsuit. But from way we understand it in law enforcement at the department is the chief answers to the county executive. So if the county executive allows the federal government to come in, you're going to let the federal government come in. Any other questions? Thank you so much for letting me come and speak. Those of you who've been here a few times know that we have one of our old keepers who is very involved with this, Mark Messler. Also about half of our membership is or at least half is in St. Charles. And if you happen to be in St. Charles and you haven't signed the petition, make sure that you sign it tonight. But Mark has been working very tirelessly on getting signatures to get the sheriff back in St. Charles County. And I think Mark wanted to, did you want to say something? Would you come up here? I sure do, ma'am. I just wanted to give a brief history on myself. I know most of the oath keepers know that we have a lot of visitors. I've been working on this project for over two years by myself with another group of people, starting with the Save Our Sheriff group. And it did lose by a .72% margin. I wish it never would have. I wish we had worked a little harder back then. So you're going to have to beat the bush so hard this time. But we watched the results come in at the bar on St. Charles and we were just dumbfounded. There was a recount that was supposed to be done. So it's a very passionate thing for me because I don't lose elected sheriff. And I'm certainly for somebody that's pro second amendment who wants to be sheriff. I didn't know about the second option that he said about calling this county councilman. So I'm definitely going to work on that end of it now, knowing that and trying to get something. Do you think it can be done with witness forms too? Or just calling them bother my death? Yeah. I had a meeting with Tony Tawad just last week who this guy is awesome. He doesn't even live in the district. He's from New Jersey from New Hampshire from the Free State and he comes down here to work on contracts. And he's been here for the last two years and he's been wrapped up in all this for the last two years as well. He collects the most signatures on his own. He's a tall guy with an accent. You might see him out at soccer games, etc. He's collected over a thousand signatures just on his own. So I got to give him props and throw his name out there. There's other groups I belong to. One of them is St. Louis County or St. Charles Liberty Project. And that's when it started to save our share. They started on this petition drive this time but had to fall out with other people. Unfortunately, it's cost us our volunteers and not everybody's as organized as it should be. So I've been coming here and everywhere else I go carrying this thing with me to get signatures. But now that I asked for help too to go door to door and it doesn't warm up. We need approximately 18,000 with the error rate margin for good signatures, bad signatures. And we have 2,000 right now so it's only 10%. We've only got 16 more weeks to go until the July deadline. So in essence, we need 1,000 signatures per week. So when the weather does get warm enough, we're going to be beating the streets to get these signatures. And I can give you a suggestion. My daughter and I were downtown St. Louis on Sabbath on Sunday for the Pet Parade. And there were people walking through the crowd getting signatures for something. I mean, I'm not in St. Louis City, much less the county, so I couldn't sign any of the petitions. But there were people there. So my point to you is we've got a Colorado parade coming up. And I don't know what your July day is but we've got the Fourth of July parade and we've found it too. We've got people just walking along the streets where the people are viewing the parade and you can probably get signatures that much. That's actually when we started on July 4th. We had a parade float in the parade at St. Charles. St. Charles, over the front down there? Yeah, everybody was in yellow, try to meet the color shirts. And we were handing out flowers and collecting signatures afterwards. But even from the get-go at that, we just didn't have enough volunteers. And that's the biggest problem we have as far as approaching the district. We just don't have enough people to walk. Now, we did buy the voter roll. We know who we got a target for the districts. So it's just not a wheelie-nilly, what's been knocking on everybody's door. We're going to the voters who already voted on it, showing them the original ballot measure and saying, you've been tricked. You've been duped. Do you remember this? Yes. And 95% of them are signing it and saying, yeah, that's not when I want it. So I can't stress enough how much we need people when it gets warm again to go out and do this. To make up for the deficiency of the time lost with the cold weather. So do you have to live in the county in order to collect the signatures? No, you do not. You have to get signatures from people in the county. So we've been to several different events. October fest, we collected signatures. And there are a few other ones I forget what they were. But we have the size of St. Charles County. And that's the only time we collect them because we don't want to go to St. Louis. And when we get half the signatures right. Right, right. With the election cycle coming up. There are plenty of politicians that have people out here missing. Do you have any contact to see them? No, we haven't. And you know, I'd say it's probably one of our big downfalls that we would be trying to put the saw in our shoulders. You know, just recently I started handing out these petitions because we're in a dire desperate need. If somebody wants to collect them, we can give you walking maps. I've already talked to Tony. He's willing to do that. If you want to go around your own neighborhoods. If you live in St. Charles County and you want to go around your neighborhoods. We'll furnish you with the list. You go up and knock on the doors. We'll furnish you with the petitions. And it's very short and sweet and bold up here. It just says we want to keep the position of elected chair for repeal of the creation of the county police department. And this is our wording for the ballot. Our arrestor is a rich chrysmer. So it's very easy to sell to people. You just need people to get out and do it. So that's my plea to all of you. If you want to do it, you want to do it in your neighborhood. Give me your name and email and I'll have Tony contact you. He'll email your list. You can go print out at home. You can just walk and go get them. One last question. As soon as you get the petitions, you need which ballot will be on August 3rd? November. November, the next November cycle. Which will be before the creation of it. So it's still time to stop it. It'll be a time for people to vote before it's actually created. I know they've already started doing things that seems, but we're hoping we can stop it. It's definitely an important issue as Mr. Jeff has explained. And I just didn't know how many people knew how invested I was in it. I just wanted to let you know.