diff --git a/packages/client/public/audio/edu.ogg b/packages/client/public/audio/eduardo.ogg
similarity index 100%
rename from packages/client/public/audio/edu.ogg
rename to packages/client/public/audio/eduardo.ogg
diff --git a/packages/client/public/audio/julieta.ogg b/packages/client/public/audio/julieta.ogg
new file mode 100644
index 0000000..3a9f9b2
--- /dev/null
+++ b/packages/client/public/audio/julieta.ogg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:57e453d5d63c691a1076d54563db9442421abe244de41512d9dd759fa2c81bbd
+size 2086475
diff --git a/packages/client/public/model/obras/juan_cruz.glb b/packages/client/public/model/obras/juan_cruz.glb
index bac0483..4d93990 100644
--- a/packages/client/public/model/obras/juan_cruz.glb
+++ b/packages/client/public/model/obras/juan_cruz.glb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8cabbfa4eb898ff13ac1f97a9974dd1194fae929aace55d8622b57216addc4eb
+oid sha256:d09db41157dcc876c4a0e071491528ff49d041653ee628a256f3603c74ec3a95
size 58828
diff --git a/packages/client/public/model/obras/julieta.glb b/packages/client/public/model/obras/julieta.glb
index 7686917..91c132d 100644
--- a/packages/client/public/model/obras/julieta.glb
+++ b/packages/client/public/model/obras/julieta.glb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:6c4374dac2ed960485bbdb9b35c963ec53ab75c3037ac110211854bfa6aede06
-size 1363172
+oid sha256:fc071fda863b5ba89da1c2106764add05ad289bb8e29fd20fc6a917d9443a8f7
+size 292312
diff --git a/packages/client/public/model/obras/proyector.glb b/packages/client/public/model/obras/proyector.glb
index e5cd77e..83c3f25 100644
--- a/packages/client/public/model/obras/proyector.glb
+++ b/packages/client/public/model/obras/proyector.glb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:23aef1c280b3c385d3f22ee9d5b19dcaa85ea8d94d4c91fb0cb88d90328f0838
+oid sha256:c91f478ef81995e2664699a620cd31554c468b8524030cbb0d770956f68b7a1b
size 7116
diff --git a/packages/client/public/model/obras/proyector_wide.glb b/packages/client/public/model/obras/proyector_wide.glb
index 8ae12e1..b1c9d08 100644
--- a/packages/client/public/model/obras/proyector_wide.glb
+++ b/packages/client/public/model/obras/proyector_wide.glb
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:7c4c809d011db55de058bf7d96624ce485ace4224a32a944fde455935f87a7f5
+oid sha256:1205eaa24cac88fabeff18db45f0bfc508ef2f543aad5acbe8a503018747056f
size 7124
diff --git a/packages/client/src/3d/ArtworkCollection.tsx b/packages/client/src/3d/ArtworkCollection.tsx
index 4c3dbd3..98312be 100644
--- a/packages/client/src/3d/ArtworkCollection.tsx
+++ b/packages/client/src/3d/ArtworkCollection.tsx
@@ -12,17 +12,22 @@ import Gaston from './models/obras/Gaston'
import Daniela from './models/obras/Daniela'
import Pedro from './models/obras/Pedro'
import DiegoGuido from './models/obras/DiegoGuido'
+import JuanCruz from './models/obras/JuanCruz'
+import Cordoba from './models/obras/Cordoba'
+import Camila from './models/obras/Camila'
+import Novello from './models/obras/Novello'
+import Eduardo from './models/obras/Eduardo'
const models: (JSX.Element | null)[] = [
, // ,
- null, // Juan cruz
- null, // Lucia cordoba
- null, // Camila
+ , // Juan cruz
+ , // Lucia cordoba
+ , // Camila
,
- null, // Lucia Novello
+ , // Lucia Novello
,
,
- null, // Edu
+ , // Edu
,
,
,
diff --git a/packages/client/src/3d/models/obras/Camila.tsx b/packages/client/src/3d/models/obras/Camila.tsx
new file mode 100644
index 0000000..194f2e2
--- /dev/null
+++ b/packages/client/src/3d/models/obras/Camila.tsx
@@ -0,0 +1,34 @@
+/*
+Auto-generated by: https://github.com/pmndrs/gltfjsx
+*/
+
+import * as THREE from 'three'
+import React, { useRef } from 'react'
+import { useGLTF } from '@react-three/drei/useGLTF'
+
+import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader'
+
+type GLTFResult = GLTF & {
+ nodes: {
+ Plane: THREE.Mesh
+ }
+ materials: {
+ cami: THREE.MeshStandardMaterial
+ }
+}
+
+export default function Model(props: JSX.IntrinsicElements['group']) {
+ const group = useRef()
+ const { nodes, materials } = useGLTF('/model/obras/camila.glb') as GLTFResult
+ return (
+
+
+
+ )
+}
+
+useGLTF.preload('/model/obras/camila.glb')
diff --git a/packages/client/src/3d/models/obras/Carolina.tsx b/packages/client/src/3d/models/obras/Carolina.tsx
index 07dad12..e7329a4 100644
--- a/packages/client/src/3d/models/obras/Carolina.tsx
+++ b/packages/client/src/3d/models/obras/Carolina.tsx
@@ -5,6 +5,7 @@ Auto-generated by: https://github.com/pmndrs/gltfjsx
import * as THREE from 'three'
import React, { useRef } from 'react'
import { useGLTF } from '@react-three/drei/useGLTF'
+import { Text } from '@react-three/drei'
import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader'
@@ -19,11 +20,63 @@ type GLTFResult = GLTF & {
}
}
+const text = [
+ `Porque nada nos llevamos y sólo una cosa dejamos, lo mucho que hemos amado. Por eso
+a pesar de la ausencia tu amor me sigue abrazando y yo te sigo amando como si mis ojos
+te vieran`,
+ `Cómo van las cosas por allá? acá está todo muy raro, hace mucho que estamos
+encerrados, vos te estarías volviendo loca. Se que aunque no estas acá conmigo
+físicamente, estas. Te siento y te amo. Sé que estás acá.`,
+ `Mamá, te extraño mucho, te sueño. Me gustaría que estés acá, pero entiendo que tu cuerpo
+ya no podía más. Sé que estarías contenta de saber qué armamos un estudio en casa y
+siempre tiene las flores que te gustan. Espero que te hayas encontrado con papá y estés
+feliz.`,
+]
+
export default function Model(props: JSX.IntrinsicElements['group']) {
const group = useRef()
const { nodes, materials } = useGLTF('/model/obras/carolina.glb') as GLTFResult
return (
+
+
+ {text[0]}
+
+
+
+
+ {text[1]}
+
+
+
+
+ {text[2]}
+
+
()
+ const { nodes, materials } = useGLTF('/model/obras/cordoba.glb') as GLTFResult
+ return (
+
+
+
+ )
+}
+
+useGLTF.preload('/model/obras/cordoba.glb')
diff --git a/packages/client/src/3d/models/obras/Eduardo.tsx b/packages/client/src/3d/models/obras/Eduardo.tsx
new file mode 100644
index 0000000..aa3a463
--- /dev/null
+++ b/packages/client/src/3d/models/obras/Eduardo.tsx
@@ -0,0 +1,32 @@
+/*
+Auto-generated by: https://github.com/pmndrs/gltfjsx
+*/
+
+import * as THREE from 'three'
+import React, { useRef } from 'react'
+import { useGLTF } from '@react-three/drei/useGLTF'
+
+import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader'
+import ObraAudio from '../../ObraAudio'
+
+type GLTFResult = GLTF & {
+ nodes: {
+ Sphere: THREE.Mesh
+ }
+ materials: {
+ Material: THREE.MeshStandardMaterial
+ }
+}
+
+export default function Model(props: JSX.IntrinsicElements['group']) {
+ const group = useRef()
+ const { nodes, materials } = useGLTF('/model/obras/eduardo.glb') as GLTFResult
+ return (
+
+
+
+
+ )
+}
+
+useGLTF.preload('/model/obras/eduardo.glb')
diff --git a/packages/client/src/3d/models/obras/JuanCruz.tsx b/packages/client/src/3d/models/obras/JuanCruz.tsx
new file mode 100644
index 0000000..4ff3e10
--- /dev/null
+++ b/packages/client/src/3d/models/obras/JuanCruz.tsx
@@ -0,0 +1,30 @@
+/*
+Auto-generated by: https://github.com/pmndrs/gltfjsx
+*/
+
+import * as THREE from 'three'
+import React, { useRef } from 'react'
+import { useGLTF } from '@react-three/drei/useGLTF'
+
+import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader'
+
+type GLTFResult = GLTF & {
+ nodes: {
+ museum_building014: THREE.Mesh
+ }
+ materials: {
+ lhli: THREE.MeshStandardMaterial
+ }
+}
+
+export default function Model(props: JSX.IntrinsicElements['group']) {
+ const group = useRef()
+ const { nodes, materials } = useGLTF('/model/obras/juan_cruz.glb') as GLTFResult
+ return (
+
+
+
+ )
+}
+
+useGLTF.preload('/model/obras/juan_cruz.glb')
diff --git a/packages/client/src/3d/models/obras/Julieta.tsx b/packages/client/src/3d/models/obras/Julieta.tsx
index 4f1fd03..c37fdac 100644
--- a/packages/client/src/3d/models/obras/Julieta.tsx
+++ b/packages/client/src/3d/models/obras/Julieta.tsx
@@ -7,6 +7,7 @@ import React, { useRef } from 'react'
import { useGLTF } from '@react-three/drei/useGLTF'
import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader'
+import ObraAudio from '../../ObraAudio'
type GLTFResult = GLTF & {
nodes: {
@@ -28,6 +29,7 @@ export default function Model(props: JSX.IntrinsicElements['group']) {
const { nodes, materials } = useGLTF('/model/obras/julieta.glb') as GLTFResult
return (
+
()
+ const { nodes, materials } = useGLTF('/model/obras/novello.glb') as GLTFResult
+ return (
+
+
+
+ {text[0]}
+
+
+
+
+ {text[1]}
+
+
+
+
+ {text[2]}
+
+
+
+
+ )
+}
+
+useGLTF.preload('/model/obras/novello.glb')
diff --git a/packages/client/src/3d/models/obras/Proyector_wide.tsx b/packages/client/src/3d/models/obras/Proyector_wide.tsx
deleted file mode 100644
index a2b8531..0000000
--- a/packages/client/src/3d/models/obras/Proyector_wide.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-Auto-generated by: https://github.com/pmndrs/gltfjsx
-*/
-
-import * as THREE from 'three'
-import React, { useRef } from 'react'
-import { useGLTF } from '@react-three/drei/useGLTF'
-
-import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader'
-
-type GLTFResult = GLTF & {
- nodes: {
- Cube001: THREE.Mesh
- ['Cube.001_1']: THREE.Mesh
- ['Cube.001_2']: THREE.Mesh
- }
- materials: {
- plastic: THREE.MeshStandardMaterial
- projection_light: THREE.MeshStandardMaterial
- projection: THREE.MeshStandardMaterial
- }
-}
-
-export default function Model(props: JSX.IntrinsicElements['group']) {
- const group = useRef()
- const { nodes, materials } = useGLTF('/proyector_wide.glb') as GLTFResult
- return (
-
-
-
-
-
- )
-}
-
-useGLTF.preload('/proyector_wide.glb')
diff --git a/packages/client/src/components/Museo.tsx b/packages/client/src/components/Museo.tsx
index b3cc2d6..16c8462 100644
--- a/packages/client/src/components/Museo.tsx
+++ b/packages/client/src/components/Museo.tsx
@@ -38,9 +38,18 @@ const Museo: React.FC = () => {
return
}
const socket = io()
+
+ const closeSocket = () => {
+ setError('SOCKET')
+ socket.close()
+ setSocket(null)
+ }
+
setSocket(socket)
- socket.on('disconnect', () => setError('SOCKET'))
+ socket.on('disconnect', () => {
+ closeSocket()
+ })
socket.on('broadcast-transforms', (payload: UserTransforms) => {
setUserTransforms(payload)
})
@@ -50,9 +59,13 @@ const Museo: React.FC = () => {
}
})
+ const sendVisitTimeout = setTimeout(() => {
+ socket.emit('register-visit')
+ }, 15000) // wait 15 to send the event
+
return () => {
- socket.close()
- setSocket(null)
+ closeSocket()
+ clearTimeout(sendVisitTimeout)
}
}, [response, isLoading])
diff --git a/packages/server/src/index.js b/packages/server/src/index.js
index 38ea813..7bc7370 100644
--- a/packages/server/src/index.js
+++ b/packages/server/src/index.js
@@ -151,6 +151,10 @@ io.on('connection', async (socket) => {
await asyncHDEL('socket', String(socket.request.user._id))
})
+ socket.on('register-visit', () => {
+ console.log(`new visit from: ${socket.request.user.name}`)
+ })
+
const user = await UserModel.findById(socket.request.user._id)
if (user) {
socket.emit('initial-transform', user.lastLocation)