1"use strict";(self.webpackChunkjerrytron_com=self.webpackChunkjerrytron_com||[]).push([[4175],{378:function(e,t,a){a.r(t),a.d(t,{default:function(){return y}});var n=a(8453),l=a(6540);function r(e){const t=Object.assign({p:"p",em:"em",a:"a",blockquote:"blockquote",iframe:"iframe"},(0,n.RP)(),e.components),a=t.Image1;return a||function(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Image1",!0),l.createElement(l.Fragment,null,l.createElement(t.p,null,l.createElement(t.em,null,"Welcome! I see you could use a bit of dental work⦠Please just have a seat and I will possess you shortly. Donât worry, you wonât feel a thing, unless I forget the anesthetic!")),"\n",l.createElement(t.p,null,"Ghost Dentist VR is a game created during ",l.createElement(t.a,{href:"http://trainjam.com/"},"Train Jam")," 2017 (an amazing game jam organized by ",l.createElement(t.a,{href:"https://twitter.com/MsMinotaur"},"Adriel Wallick"),") with a custom hardware peripheral - the VibraJawâ¢. It is a humorous body-horror experience where you, a ghost with a dental practice, possess your incoming patients in order to do their dental work. Of course, since you have possessed them, you are actually performing the dental work on yourself. Your patient is still aware, reacting with their eyes, tongue, and expressing pain. Too much and you'll get kicked out of their body!"),"\n",l.createElement(t.blockquote,null,"\n",l.createElement(t.iframe,{width:"100%",height:"315",src:"https://www.youtube-nocookie.com/embed/7nJSv3wPork?rel=0",frameBorder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0}),"\n"),"\n",l.createElement(a,{align:"left",width:"45%"}),"\n",l.createElement(t.p,null,"As a designing that thrives on constraints and challenges and loves rapid prototyping with hardware, ",l.createElement(t.em,null,"Ghost Dentist VR")," was a perfect experiment. Creating VR work on a train is already a difficult task, but we wanted to take it a step further by developing a jaw tracking device that also provides haptic feedback using vibrational motors that react based on the teeth you are drilling in-game. It has been invited to exhibit around the world, each time receiving a bit more polish. It began simply as a self-dentistry game, but once youâve done your dental work, whatâs left? As a ghost, however, the game loop can continue with new patients, conditions, and challenges dealing with your temporary host!"),"\n",l.createElement(t.blockquote,null,"\n",l.createElement(t.iframe,{width:"100%",height:"315",src:"https://www.youtube-nocookie.com/embed/oBBA3fHBVfQ?rel=0",frameBorder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0}),"\n"),"\n",l.createElement(t.p,null,"After countless requests to release a full version of the game (it plays great even without the ",l.createElement(t.em,null,"VibraJawâ¢"),") we are open to funding or publishing assistance to make that happen properly!"),"\n",l.createElement(t.blockquote,null,"\n",l.createElement(t.iframe,{width:"100%",height:"315",src:"https://www.youtube-nocookie.com/embed/W2kdahSRSt0?rel=0&start=3072",frameBorder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0}),"\n"))}var i=function(e){void 0===e&&(e={});const t=Object.assign({},(0,n.RP)(),e.components).wrapper;return t?l.createElement(t,e,l.createElement(r,e)):r(e)};var o=a(4589),c=a(5588),s=a(2761),m=a(983);const u=e=>{var t;let a=e.data,r=e.children;const i=a.mdx,o=i.frontmatter,u=i.fields,y=(0,c.c)(null===(t=u.thumbnail)||void 0===t?void 0:t.childImageSharp),w=u.slides,f=o.credits,b=o.recognition,k=u.gallery,v=(0,m.M7)(u.images);return l.createElement(s.A,null,l.createElement("article",{className:"sheet"},l.createElement("div",{className:"sheet__inner"},y&&l.createElement("div",{className:"sheet__banner"},l.createElement(c.G,{image:y,alt:o.title||""})),l.createElement("h1",{className:"sheet__title"},o.title),l.createElement("div",{className:"sheet__lead"},o.summary),l.createElement("hr"),l.createElement(d,{credits:f,recognition:b,gallery:k}),l.createElement(h,{slides:w,title:o.title}),l.createElement("div",{className:"sheet__body"}
1,l.createElement(n.xA,{components:v},r)),l.createElement(p,{credits:f}),l.createElement(g,{recognition:b}),l.createElement(E,{images:k,title:o.title}))))};function d(e){let t=e.credits,a=e.recognition,n=e.gallery;return t||a||n?l.createElement("div",null,l.createElement("p",{className:"sheet__quicklinks"}," â¢Â ",t&&l.createElement("span",null,l.createElement("a",{href:"#credits"},"Credits")," â¢Â "),a&&l.createElement("span",null,l.createElement("a",{href:"#recognition"},"Recognition")," â¢Â "),n&&l.createElement("span",null,l.createElement("a",{href:"#gallery"},"Gallery")," â¢Â ")),l.createElement("hr")):null}function h(e){let t=e.slides,a=e.title;return t&&0!==t.length?l.createElement("div",{className:"sheet__slider"},l.createElement(o.A,{slidesToShow:2,infinite:!0,arrows:!0,autoplay:!0,autoplaySpeed:6e3},t.map((e,t)=>{const n=(0,c.c)(null==e?void 0:e.childImageSharp);return n?l.createElement(c.G,{key:t,image:n,alt:(a||"")+" slide "+(t+1)}):l.createElement("div",{key:t})}))):null}function p(e){let t=e.credits;return t?l.createElement("div",{className:"sheet__body"},l.createElement("h2",{id:"credits"},"Credits"),l.createElement("ul",null,t.map((e,t)=>l.createElement("li",{key:t},e.link?l.createElement("span",null,l.createElement("a",{href:e.link},e.name)," â ",e.role):l.createElement("span",null,e.name," â ",e.role))))):null}function g(e){let t=e.recognition;return t?l.createElement("div",{className:"sheet__body"},l.createElement("h2",{id:"recognition"},"Recognition"),l.createElement("ol",{className:"sheet__recognition"},t.map((e,t)=>l.createElement("li",{className:"sheet__recognitionitem",key:t},l.createElement("strong",null,e.event),l.createElement("em",null,e.status),e.location," â ",e.datesPretty)))):null}function E(e){let t=e.images,a=e.title;return t&&0!==t.length?l.createElement("div",{className:"sheet__body"},l.createElement("h2",{id:"gallery"},"Gallery"),l.createElement("div",{className:"sheet__gallery"},t.map((e,t)=>{const n=(0,c.c)(null==e?void 0:e.childImageSharp);return n?l.createElement(c.G,{className:"sheet__galleryimage",key:t,image:n,alt:(a||"")+" gallery image "+(t+1)}):null}))):null}function y(e){return l.createElement(u,e,l.createElement(i,e))}}}]); 2//# sourceMappingURL=component---src-templates-project-js-content-file-path-src-projects-ghost-dentist-vr-md-d3d07465fb61f73989b9.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.