From 9fbfd1ff1ceffbcf1cb402d385ebc98e7fe1e659 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Alves?= Date: Sat, 16 Sep 2023 16:53:13 +0100 Subject: [PATCH] Add custom coin geometries --- .prettierignore | 3 +- public/coins/bahamas/5012.json | 2 +- public/coins/bahamas/9224.json | 10 +- public/coins/mexico/587.json | 6 - public/models/bahamas-cents-10.gltf | 104 ++++++ public/models/bahamas-cents-15.gltf | 104 ++++++ public/models/euro-cents-20.gltf | 104 ++++++ public/models/squiggly-circle.gltf | 309 ++++++++++++++++++ .../custom-geometries/bahamas-cents-10.tsx | 17 + .../custom-geometries/bahamas-cents-15.tsx | 17 + .../coin/custom-geometries/euro-cents-20.tsx | 17 + src/components/coin/index.tsx | 42 ++- src/components/pile/coin-instances.tsx | 3 +- src/components/showcase/index.tsx | 15 +- src/pages/api/merge-textures/[id].ts | 137 ++++++++ 15 files changed, 858 insertions(+), 32 deletions(-) create mode 100644 public/models/bahamas-cents-10.gltf create mode 100644 public/models/bahamas-cents-15.gltf create mode 100644 public/models/euro-cents-20.gltf create mode 100644 public/models/squiggly-circle.gltf create mode 100644 src/components/coin/custom-geometries/bahamas-cents-10.tsx create mode 100644 src/components/coin/custom-geometries/bahamas-cents-15.tsx create mode 100644 src/components/coin/custom-geometries/euro-cents-20.tsx create mode 100644 src/pages/api/merge-textures/[id].ts diff --git a/.prettierignore b/.prettierignore index b512c09..9160fd0 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1 +1,2 @@ -node_modules \ No newline at end of file +node_modules +public/models \ No newline at end of file diff --git a/public/coins/bahamas/5012.json b/public/coins/bahamas/5012.json index db44a3f..4ff9179 100644 --- a/public/coins/bahamas/5012.json +++ b/public/coins/bahamas/5012.json @@ -103,5 +103,5 @@ "name": "The Franklin Mint" } ], - "color": "rgb(70.34482758620689,153.8793103448276,184.6551724137931)" + "color": "rgb(184,184,184)" } diff --git a/public/coins/bahamas/9224.json b/public/coins/bahamas/9224.json index db2cea6..477bca1 100644 --- a/public/coins/bahamas/9224.json +++ b/public/coins/bahamas/9224.json @@ -87,14 +87,6 @@ "size": 23.5, "thickness": 1.72, "orientation": "medal", - "edge": { - "description": "Plain", - "picture": "/photos/bahamas/627d8a8a060cb7.98306122-original.jpg", - "thumbnail": "https://en.numista.com/catalogue/photos/bahamas/627d8a8a060cb7.98306122-180.jpg", - "picture_copyright": "Harryg", - "picture_license_name": "CC BY", - "picture_license_url": "https://creativecommons.org/licenses/by/4.0/deed.en" - }, "mints": [ { "id": "16", @@ -105,5 +97,5 @@ "name": "The Franklin Mint" } ], - "color": "rgb(157,143,72)" + "color": "rgb(180,180,160)" } diff --git a/public/coins/mexico/587.json b/public/coins/mexico/587.json index 7ad6d0d..54f7bd7 100644 --- a/public/coins/mexico/587.json +++ b/public/coins/mexico/587.json @@ -87,12 +87,6 @@ "size": 23, "thickness": 1.4, "orientation": "coin", - "edge": { - "description": "Plain", - "picture": "/photos/mexique/4308-original.jpg", - "thumbnail": "https://en.numista.com/catalogue/photos/mexique/4308-180.jpg", - "picture_copyright": "G-REMXD" - }, "mints": [ { "id": "29", diff --git a/public/models/bahamas-cents-10.gltf b/public/models/bahamas-cents-10.gltf new file mode 100644 index 0000000..c0f66e7 --- /dev/null +++ b/public/models/bahamas-cents-10.gltf @@ -0,0 +1,104 @@ +{ + "asset":{ + "generator":"Khronos glTF Blender I/O v3.6.6", + "version":"2.0" + }, + "scene":0, + "scenes":[ + { + "name":"Scene", + "nodes":[ + 0 + ] + } + ], + "nodes":[ + { + "mesh":0, + "name":"BahamasCents10" + } + ], + "meshes":[ + { + "name":"BahamasCents10", + "primitives":[ + { + "attributes":{ + "POSITION":0, + "TEXCOORD_0":1, + "NORMAL":2 + }, + "indices":3 + } + ] + } + ], + "accessors":[ + { + "bufferView":0, + "componentType":5126, + "count":386, + "max":[ + 0.9999998807907104, + 0.495593398809433, + 0.9999998807907104 + ], + "min":[ + -0.9999998807907104, + -0.495593398809433, + -0.9999998807907104 + ], + "type":"VEC3" + }, + { + "bufferView":1, + "componentType":5126, + "count":386, + "type":"VEC2" + }, + { + "bufferView":2, + "componentType":5126, + "count":386, + "type":"VEC3" + }, + { + "bufferView":3, + "componentType":5123, + "count":1140, + "type":"SCALAR" + } + ], + "bufferViews":[ + { + "buffer":0, + "byteLength":4632, + "byteOffset":0, + "target":34962 + }, + { + "buffer":0, + "byteLength":3088, + "byteOffset":4632, + "target":34962 + }, + { + "buffer":0, + "byteLength":4632, + "byteOffset":7720, + "target":34962 + }, + { + "buffer":0, + "byteLength":2280, + "byteOffset":12352, + "target":34963 + } + ], + "buffers":[ + { + "byteLength":14632, + "uri":"data:application/octet-stream;base64,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AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/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7QDsAOwA7QDvAOwA7wDuAO4A7wDxAO4A8QDwAPAA8QDzAPAA8wDyAPIA8wD1APIA9QD0APQA9QD3APQA9wD2APYA9wD5APYA+QD4APgA+QD7APgA+wD6APoA+wD9APoA/QD8APwA/QD/APwA/wD+AP4A/wABAf4AAQEAAQABAQEDAQABAwECAQIBAwEFAQIBBQEEAQQBBQEHAQQBBwEGAQYBBwEJAQYBCQEIAQgBCQELAQgBCwEKAQoBCwENAQoBDQEMAQwBDQEPAQwBDwEOAQ4BDwERAQ4BEQEQARABEQETARABEwESARIBEwEVARIBFQEUARQBFQEXARQBFwEWARYBFwEZARYBGQEYARgBGQEbARgBGwEaARoBGwEdARoBHQEcARwBHQEfARwBHwEeAR4BHwEhAR4BIQEgASABIQEjASABIwEiASIBIwElASIBJQEkASQBJQEnASQBJwEmASYBJwEpASYBKQEoASgBKQErASgBKwEqASoBKwEtASoBLQEsASwBLQEvASwBLwEuAS4BLwExAS4BMQEwATABMQEzATABMwEyATIBMwE1ATIBNQE0ATQBNQE3ATQBNwE2ATYBNwE5ATYBOQE4ATgBOQE7ATgBOwE6AToBOwE9AToBPQE8ATwBPQE/ATwBPwE+AT4BPwFBAT4BQQFAAUABQQFDAUABQwFCAUIBQwFFAUIBRQFEAUQBRQFHAUQBRwFGAUYBRwFJAUYBSQFIAUgBSQFLAUgBSwFKAUoBSwFNAUoBTQFMAUwBTQFPAUwBTwFOAU4BTwFRAU4BUQFQAVABUQFTAVABUwFSAVIBUwFVAVIBVQFUAVQBVQFXAVQBVwFWAVYBVwFZAVYBWQFYAVgBWQFbAVgBWwFaAVoBWwFdAVoBXQFcAVwBXQFfAVwBXwFeAV4BXwFhAV4BYQFgAWABYQFjAWABYwFiAWIBYwFlAWIBZQFkAWQBZQFnAWQBZwFmAWYBZwFpAWYBaQFoAWgBaQFrAWgBawFqAWoBawFtAWoBbQFsAWwBbQFvAWwBbwFuAW4BbwFxAW4BcQFwAXABcQFzAXABcwFyAXIBcwF1AXIBdQF0AXQBdQF3AXQBdwF2AXYBdwF5AXYBeQF4AXgBeQF7AXgBewF6AXoBewF9AXoBfQF8AXwBfQF/AXwBfwF+AYEBvQC7ALsAuQC3ALcAtQCzALsAtwCzAIEBuwCzAIEBswCxAAEAgQGxAK8ArQCrAAEAsQCvAAcABQADAAMAAQCvAK8AqwCpAKkApwClAKkApQCjAAMArwCpAAkABwADAA0ACwAJAA8ADQAJAAkAAwCpAAkAqQCjAA8ACQCjAA8AowChABEADwChAJ8AnQCbABEAoQCfABcAFQATABMAEQCfAJ8AmwCZAJkAlwCVAJkAlQCTABMAnwCZABkAFwATAB0AGwAZAB8AHQAZABkAEwCZABkAmQCTAB8AGQCTAB8AkwCRACEAHwCRAI8AjQCLACEAkQCPACcAJQAjACMAIQCPAI8AiwCJAIkAhwCFAIkAhQCDACMAjwCJACkAJwAjAC0AKwApAC8ALQApACkAIwCJACkAiQCDAC8AKQCDAC8AgwCBADEALwCBAH8AfQB7ADEAgQB/ADcANQAzADMAMQB/AH8AewB5AHkAdwB1AHkAdQBzADMAfwB5ADkANwAzAD0AOwA5AD8APQA5ADkAMwB5ADkAeQBzAD8AOQBzAD8AcwBxAEEAPwBxAG8AbQBrAEEAcQBvAEcARQBDAEMAQQBvAG8AawBpAGkAZwBlAGkAZQBjAEMAbwBpAEkARwBDAE0ASwBJAE8ATQBJAEkAQwBpAEkAaQBjAE8ASQBjAE8AYwBhAFEATwBhAF8AXQBbAFEAYQBfAFcAVQBTAFMAUQBfAF8AWwBZAFkAVwBTAF8AWQBTAH4BfwG/AH4BvwCAAYABvwDEAIABxADAAAIABAAGAAYACAAKAAoADAAOAAYACgAOAAIABgAOAAIADgAQAAAAAgAQABIAFAAWAAAAEAASALoAvAC+AL4AAAASABIAFgAYABgAGgAcABgAHAAeAL4AEgAYALgAugC+ALQAtgC4ALIAtAC4ALgAvgAYALgAGAAeALIAuAAeALIAHgAgALAAsgAgACIAJAAmALAAIAAiAKoArACuAK4AsAAiACIAJgAoACgAKgAsACgALAAuAK4AIgAoAKgAqgCuAKQApgCoAKIApACoAKgArgAoAKgAKAAuAKIAqAAuAKIALgAwAKAAogAwADIANAA2AKAAMAAyAJoAnACeAJ4AoAAyADIANgA4ADgAOgA8ADgAPAA+AJ4AMgA4AJgAmgCeAJQAlgCYAJIAlACYAJgAngA4AJgAOAA+AJIAmAA+AJIAPgBAAJAAkgBAAEIARABGAJAAQABCAIoAjACOAI4AkABCAEIARgBIAEgASgBMAEgATABOAI4AQgBIAIgAigCOAIQAhgCIAIIAhACIAIgAjgBIAIgASABOAIIAiABOAIIATgBQAIAAggBQAFIAVABWAIAAUABSAHoAfAB+AH4AgABSAFIAVgBYAFgAWgBcAFgAXABeAH4AUgBYAHgAegB+AHQAdgB4AHIAdAB4AHgAfgBYAHgAWABeAHIAeABeAHIAXgBgAHAAcgBgAGIAZABmAHAAYABiAGoAbABuAG4AcABiAGIAZgBoAGgAagBuAGIAaABuAA==" + } + ] +} diff --git a/public/models/bahamas-cents-15.gltf b/public/models/bahamas-cents-15.gltf new file mode 100644 index 0000000..008345e --- /dev/null +++ b/public/models/bahamas-cents-15.gltf @@ -0,0 +1,104 @@ +{ + "asset":{ + "generator":"Khronos glTF Blender I/O v3.6.6", + "version":"2.0" + }, + "scene":0, + "scenes":[ + { + "name":"Scene", + "nodes":[ + 0 + ] + } + ], + "nodes":[ + { + "mesh":0, + "name":"BahamasCents15" + } + ], + "meshes":[ + { + "name":"BahamasCents15", + "primitives":[ + { + "attributes":{ + "POSITION":0, + "TEXCOORD_0":1, + "NORMAL":2 + }, + "indices":3 + } + ] + } + ], + "accessors":[ + { + "bufferView":0, + "componentType":5126, + "count":146, + "max":[ + 0.9979934692382812, + 0.4984160363674164, + 0.9979934692382812 + ], + "min":[ + -0.9979934692382812, + -0.4984160363674164, + -0.9979934692382812 + ], + "type":"VEC3" + }, + { + "bufferView":1, + "componentType":5126, + "count":146, + "type":"VEC2" + }, + { + "bufferView":2, + "componentType":5126, + "count":146, + "type":"VEC3" + }, + { + "bufferView":3, + "componentType":5123, + "count":420, + "type":"SCALAR" + } + ], + "bufferViews":[ + { + "buffer":0, + "byteLength":1752, + "byteOffset":0, + "target":34962 + }, + { + "buffer":0, + "byteLength":1168, + "byteOffset":1752, + "target":34962 + }, + { + "buffer":0, + "byteLength":1752, + "byteOffset":2920, + "target":34962 + }, + { + "buffer":0, + "byteLength":840, + "byteOffset":4672, + "target":34963 + } + ], + "buffers":[ + { + "byteLength":5512, + "uri":"data:application/octet-stream;base64,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LbI9PwAAAAAAAIC/AAAAgM07Dj8AAACAL91UP0Hxwz4AAACAtoRsP0vIRz4AAACAtRV7PwAAAAAAAAAAAACAP0vIR74AAACAtRV7P0Hxw74AAACAtoRsP807Dr8AAACAL91UP/rtK78AAACALbI9P/rtKz8AAAAALbI9P807Dr8AAACAL91UP0Hxw74AAACAtoRsP0vIR74AAACAtRV7PwAAAAAAAAAAAACAP0vIRz4AAACAtRV7P0Hxwz4AAACAtoRsP807Dj8AAACAL91UPwAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgC2yPT8AAAAA+u0rPwAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgPrtKz8AAAAALbI9vwAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAAAAAIC/AAAAgAAAAAAAAIC/AAAAgC2yPb8AAACA+u0rPwAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgPrtK78AAACALbI9PwAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAIAAAIA/AAAAgAAAAAAAAIC/AAAAgF4AGwAKAF4ACgAAAH4AbQBrAGsAaQBnAGcAZQBjAGMAYQBfAF8AEwBbAFsAWQBXAFcAVQBTAFMAUQBPAE8ATQABAAEAkQCPAI8AjQCLAIsAiQCHAIcAhQCDAIMAOQBvAG8AbgByAHIAdAB2AHYAeAB6AHoAfAB+AH4AawBnAGcAYwBfAF8AWwBXAFcAUwBPAE8AAQCPAI8AiwCHAIcAgwBvAG8AcgB2AHYAegB+AH4AZwBfAF8AVwBPAE8AjwCHAIcAbwB2AHYAfgBfAF8ATwCHAF8AhwB2AJAASwBKAEoATgBQAFAAUgBUAFQAVgBYAFgAWgBdAF0AXABgAGAAYgBkAGQAZgBoAGgAagBsAGwAfwB9AH0AewB5AHkAdwB1AHUAcwBxAHEALwCBAIEAgACEAIQAhgCIAIgAigCMAIwAjgCQAJAASgBQAFAAVABYAFgAXQBgAGAAZABoAGgAbAB9AH0AeQB1AHUAcQCBAIEAhACIAIgAjACQAJAAUABYAFgAYABoAGgAfQB1AHUAgQCIAIgAkABYAFgAaAB1AFgAdQCIAAkATAAIAAkACAALAAsACAAHAAsABwAMAAwABwAGAAwABgANAA0ABgAFAA0ABQAOAA4ABQAEAA4ABAAPAA8ABAADAA8AAwAQABAAAwACABAAAgARABEAAgAAABEAAAAKAEwACQBCAEwAQgA4ABsAXgAaABsAGgAdAB0AGgAZAB0AGQAeAB4AGQAYAB4AGAAfAB8AGAAXAB8AFwAgACAAFwAWACAAFgAhACEAFgAVACEAFQAiACIAFQAUACIAFAAjACMAFAASACMAEgAcACQAcAA3ACQANwAmACYANwA2ACYANgAnACcANgA1ACcANQAoACgANQA0ACgANAAqACkAMwAyACkAMgArACsAMgAxACsAMQAsACwAMQAwACwAMAAtAC0AMAAuAC0ALgAlACUALgAcACUAHAASAEEAggBAAEEAQABDAEMAQAA/AEMAPwBEAEQAPwA+AEQAPgBFAEUAPgA9AEUAPQBGAEYAPQA8AEYAPABHAEcAPAA7AEcAOwBIAEgAOwA6AEgAOgBJAEkAOgA4AEkAOABCAIIAQQBwAIIAcAAkAA==" + } + ] +} diff --git a/public/models/euro-cents-20.gltf b/public/models/euro-cents-20.gltf new file mode 100644 index 0000000..c16e3a3 --- /dev/null +++ b/public/models/euro-cents-20.gltf @@ -0,0 +1,104 @@ +{ + "asset":{ + "generator":"Khronos glTF Blender I/O v3.6.6", + "version":"2.0" + }, + "scene":0, + "scenes":[ + { + "name":"Scene", + "nodes":[ + 0 + ] + } + ], + "nodes":[ + { + "mesh":0, + "name":"EuroCents20" + } + ], + "meshes":[ + { + "name":"EuroCents20", + "primitives":[ + { + "attributes":{ + "POSITION":0, + "TEXCOORD_0":1, + "NORMAL":2 + }, + "indices":3 + } + ] + } + ], + "accessors":[ + { + "bufferView":0, + "componentType":5126, + "count":320, + "max":[ + 0.999995768070221, + 0.5, + 0.999995768070221 + ], + "min":[ + -0.9899212718009949, + -0.5, + -0.999995768070221 + ], + "type":"VEC3" + }, + { + "bufferView":1, + "componentType":5126, + "count":320, + "type":"VEC2" + }, + { + "bufferView":2, + "componentType":5126, + "count":320, + "type":"VEC3" + }, + { + "bufferView":3, + "componentType":5123, + "count":924, + "type":"SCALAR" + } + ], + "bufferViews":[ + { + "buffer":0, + "byteLength":3840, + "byteOffset":0, + "target":34962 + }, + { + "buffer":0, + "byteLength":2560, + "byteOffset":3840, + "target":34962 + }, + { + "buffer":0, + "byteLength":3840, + "byteOffset":6400, + "target":34962 + }, + { + "buffer":0, + "byteLength":1848, + "byteOffset":10240, + "target":34963 + } + ], + "buffers":[ + { + "byteLength":12088, + "uri":"data:application/octet-stream;base64,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DQDZADMBDAEnADMBJwA3AdkADQAxAdkAMQHGADYBfwBiADYBYgAfAccADwEQAccAEAHKACABYwD0ACAB9ACzALMA9ADtALMA7QC0ALQA7QAEALQABADjAOMABAAFAOMABQDkAMkAgwAQAMkAEAC1AL8AbwAOAb8ADgHIAPgAEwCGAPgAhgA4AbUAEABGALUARgC2ALYARgBHALYARwD2APYARwBnAPYAZwD3APcAZwATAPcAEwD4AP0AhwByAP0AcgA6AOcAigAHAOcABwDlANoASwCMANoAjADQABUBPACJABUBiQA5AeUABwAYAeUAGAHmAOYAGAFJAOYASQAWARYBSQAWABYBFgAjASMBFgBLACMBSwDaAM8AOgGPAM8AjwDUANMAkACTANMAkwARAegAlAAJAOgACQDpAKsAagASAasAEgHbAOkACQBUAOkAVAC5ALkAVABVALkAVQCoAKgAVQAkAagAJAGpAKkAJAFpAKkAaQCqADsBKwBzADsBcwAtAf4AdAAuAP4ALgD/AD0BlgAKAD0BCgAmASoBHACYACoBmADYACYBCgBsACYBbAAnAScBbAALACcBCwAoASgBCwBZACgBWQApASkBWQAcACkBHAAqAdcAPgF2ANcAdgADAQIBRAAAAQIBAAE/AfkAMQBaAPkAWgD6AOQABQDsAOQA7ADAAAoBIAAIAQoBCAEwAfoAWgBPAPoATwC+AL4ATwAdAb4AHQGtAK8AGgF3AK8AdwAGAW8AvwDAAG8AwADsAJ0APAAVAZ0AFQGfAHQA/gAtAXQALQFzAEQAAgEDAUQAAwF2AHgABQEGAXgABgF3ACAACgEHASAABwEEASEALwEwASEAMAEIAXsAxQDGAHsAxgAxAQwBMwE0AQwBNAElAH8ANgE3AX8ANwEnAA8BxwDIAA8ByAAOAYMAyQDKAIMAygAQAYcA/QA4AYcAOAGGAIoA5wA5AYoAOQGJADoBzwDQADoB0ACMAJAA0wDUAJAA1ACPAJQA6AARAZQAEQGTACsAOwHbACsA2wASAZYAPQH/AJYA/wAuAD4B1wDYAD4B2ACYADEA+QA/ATEAPwEAAW4AWwBcAFwAXQAeAB4AHwAzADQAegA1AFwAHgAzADQANQBeAFwAMwA0AB0AbgBcAJsAMAAdAEMAmwAdAB0AXAA0ADQAXgBfAF8ADAABAAEAYQB9AH0AfAA2AH4AJgCAAAEAfQA2AH4AgAACAAEANgB+ADQAXwABAEMAHQA0AJoAmQBCAEIAQwA0ADQAAQB+AH4AAgBTAFMARQAOAA4ADwBxAHEAcACCAIEAhQCEAA4AcQCCAIEAhABlAA4AggCBAH4AUwAOAEIANAB+ABsAmgBCABoAbQAbABkAawAaAC0AlwAZAEEALQAZABkAGgAbABsAQgB+AH4ADgCBAIEAZQBmAGYAEQAGAAYAEgCIAIgAKQD8AAYAiAD8AIEAZgAGABsAfgCBAEEAGQAbAJUAQAB1AHUAQQAbABsAgQAGAAYA/AD7ADsAiwA9AAYA+wA7AHUAGwAGAFgAlQB1AFYAVwBYABcATABWAD4APwAXAJEAPgAXABcAVgBYAFgAdQAGADsAPQAUAFgABgA7AJEAFwBYAI4AjQCSAJIAkQBYAFgAOwAUABQAFQBIAEgACABoAGgAjgCSAJIAWAAUABQASABoABQAaACSAJwAngA6AJwAOgByAA==" + } + ] +} diff --git a/public/models/squiggly-circle.gltf b/public/models/squiggly-circle.gltf new file mode 100644 index 0000000..1dae50d --- /dev/null +++ b/public/models/squiggly-circle.gltf @@ -0,0 +1,309 @@ +{ + "asset": { + "generator": "Khronos glTF Blender I/O v3.6.6", + "version": "2.0" + }, + "scene": 0, + "scenes": [ + { + "name": "Scene", + "nodes": [0, 1] + } + ], + "nodes": [ + { + "mesh": 0, + "name": "Cylinder" + }, + { + "mesh": 1, + "name": "Cube" + } + ], + "materials": [ + { + "doubleSided": true, + "name": "Material.001", + "pbrMetallicRoughness": { + "baseColorFactor": [0.800000011920929, 0, 0, 1], + "metallicFactor": 0, + "roughnessFactor": 0.5 + } + }, + { + "doubleSided": true, + "name": "Material.002", + "pbrMetallicRoughness": { + "baseColorFactor": [0, 0.800000011920929, 0, 1], + "metallicFactor": 0, + "roughnessFactor": 0.5 + } + }, + { + "doubleSided": true, + "name": "Material.003", + "pbrMetallicRoughness": { + "baseColorFactor": [0, 0, 0.800000011920929, 1], + "metallicFactor": 0, + "roughnessFactor": 0.5 + } + } + ], + "meshes": [ + { + "name": "Cylinder.001", + "primitives": [ + { + "attributes": { + "POSITION": 0, + "TEXCOORD_0": 1, + "NORMAL": 2 + }, + "indices": 3, + "material": 0 + }, + { + "attributes": { + "POSITION": 4, + "TEXCOORD_0": 5, + "NORMAL": 6 + }, + "indices": 7, + "material": 1 + }, + { + "attributes": { + "POSITION": 8, + "TEXCOORD_0": 9, + "NORMAL": 10 + }, + "indices": 11, + "material": 2 + } + ] + }, + { + "name": "Cube.001", + "primitives": [ + { + "attributes": { + "POSITION": 12, + "TEXCOORD_0": 13, + "NORMAL": 14 + }, + "indices": 15 + } + ] + } + ], + "accessors": [ + { + "bufferView": 0, + "componentType": 5126, + "count": 194, + "max": [0.9712389707565308, 0.495593398809433, 0.9712389707565308], + "min": [-0.9712389707565308, -0.495593398809433, -0.9712389707565308], + "type": "VEC3" + }, + { + "bufferView": 1, + "componentType": 5126, + "count": 194, + "type": "VEC2" + }, + { + "bufferView": 2, + "componentType": 5126, + "count": 194, + "type": "VEC3" + }, + { + "bufferView": 3, + "componentType": 5123, + "count": 576, + "type": "SCALAR" + }, + { + "bufferView": 4, + "componentType": 5126, + "count": 96, + "max": [0.9712389707565308, 0.495593398809433, 0.9712389707565308], + "min": [-0.9712389707565308, 0.495593398809433, -0.9712389707565308], + "type": "VEC3" + }, + { + "bufferView": 5, + "componentType": 5126, + "count": 96, + "type": "VEC2" + }, + { + "bufferView": 6, + "componentType": 5126, + "count": 96, + "type": "VEC3" + }, + { + "bufferView": 7, + "componentType": 5123, + "count": 282, + "type": "SCALAR" + }, + { + "bufferView": 8, + "componentType": 5126, + "count": 96, + "max": [0.971238911151886, -0.495593398809433, 0.971238911151886], + "min": [-0.971238911151886, -0.495593398809433, -0.971238911151886], + "type": "VEC3" + }, + { + "bufferView": 9, + "componentType": 5126, + "count": 96, + "type": "VEC2" + }, + { + "bufferView": 10, + "componentType": 5126, + "count": 96, + "type": "VEC3" + }, + { + "bufferView": 11, + "componentType": 5123, + "count": 282, + "type": "SCALAR" + }, + { + "bufferView": 12, + "componentType": 5126, + "count": 24, + "max": [1, 1, 1], + "min": [-1, -1, -1], + "type": "VEC3" + }, + { + "bufferView": 13, + "componentType": 5126, + "count": 24, + "type": "VEC2" + }, + { + "bufferView": 14, + "componentType": 5126, + "count": 24, + "type": "VEC3" + }, + { + "bufferView": 15, + "componentType": 5123, + "count": 36, + "type": "SCALAR" + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteLength": 2328, + "byteOffset": 0, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 1552, + "byteOffset": 2328, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 2328, + "byteOffset": 3880, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 1152, + "byteOffset": 6208, + "target": 34963 + }, + { + "buffer": 0, + "byteLength": 1152, + "byteOffset": 7360, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 768, + "byteOffset": 8512, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 1152, + "byteOffset": 9280, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 564, + "byteOffset": 10432, + "target": 34963 + }, + { + "buffer": 0, + "byteLength": 1152, + "byteOffset": 10996, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 768, + "byteOffset": 12148, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 1152, + "byteOffset": 12916, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 564, + "byteOffset": 14068, + "target": 34963 + }, + { + "buffer": 0, + "byteLength": 288, + "byteOffset": 14632, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 192, + "byteOffset": 14920, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 288, + "byteOffset": 15112, + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 72, + "byteOffset": 15400, + "target": 34963 + } + ], + "buffers": [ + { + "byteLength": 15472, + "uri": "data:application/octet-stream;base64,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FAATABMAFAAWABMAFgAVABUAFgAYABUAGAAXABcAGAAaABcAGgAZABkAGgAcABkAHAAbABsAHAAeABsAHgAdAB0AHgAgAB0AIAAfAB8AIAAiAB8AIgAhACEAIgAkACEAJAAjACMAJAAmACMAJgAlACUAJgAoACUAKAAnACcAKAAqACcAKgApACkAKgAsACkALAArACsALAAuACsALgAtAC0ALgAwAC0AMAAvAC8AMAAyAC8AMgAxADEAMgA0ADEANAAzADMANAA2ADMANgA1ADUANgA4ADUAOAA3ADcAOAA6ADcAOgA5ADkAOgA8ADkAPAA7ADsAPAA+ADsAPgA9AD0APgBAAD0AQAA/AD8AQABCAD8AQgBBAEEAQgBEAEEARABDAEMARABGAEMARgBFAEUARgBIAEUASABHAEcASABKAEcASgBJAEkASgBMAEkATABLAEsATABOAEsATgBNAE0ATgBQAE0AUABPAE8AUABSAE8AUgBRAFEAUgBUAFEAVABTAFMAVABWAFMAVgBVAFUAVgBYAFUAWABXAFcAWABaAFcAWgBZAFkAWgBcAFkAXABbAFsAXABeAFsAXgBdAF0AXgBgAF0AYABfAF8AYABiAF8AYgBhAGEAYgBkAGEAZABjAGMAZABmAGMAZgBlAGUAZgBoAGUAaABnAGcAaABqAGcAagBpAGkAagBsAGkAbABrAGsAbABuAGsAbgBtAG0AbgBwAG0AcABvAG8AcAByAG8AcgBxAHEAcgB0AHEAdABzAHMAdAB2AHMAdgB1AHUAdgB4AHUAeAB3AHcAeAB6AHcAegB5AHkAegB8AHkAfAB7AHsAfAB+AHsAfgB9AH0AfgCAAH0AgAB/AH8AgACCAH8AggCBAIEAggCEAIEAhACDAIMAhACGAIMAhgCFAIUAhgCIAIUAiACHAIcAiACKAIcAigCJAIkAigCMAIkAjACLAIsAjACOAIsAjgCNAI0AjgCQAI0AkACPAI8AkACSAI8AkgCRAJEAkgCUAJEAlACTAJMAlACWAJMAlgCVAJUAlgCYAJUAmACXAJcAmACaAJcAmgCZAJkAmgCcAJkAnACbAJsAnACeAJsAngCdAJ0AngCgAJ0AoACfAJ8AoACiAJ8AogChAKEAogCkAKEApACjAKMApACmAKMApgClAKUApgCoAKUAqACnAKcAqACqAKcA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AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgAAAAIAAAIA/AAAAgF8AXgBdAF0AXABbAFsAWgBZAF0AWwBZAF8AXQBZAF8AWQBYAAAAXwBYAFcAVgBVAAAAWABXAAMAAgABAAEAAABXAFcAVQBUAFQAUwBSAFQAUgBRAAEAVwBUAAQAAwABAAYABQAEAAcABgAEAAQAAQBUAAQAVABRAAcABABRAAcAUQBQAAgABwBQAE8ATgBNAAgAUABPAAsACgAJAAkACABPAE8ATQBMAEwASwBKAEwASgBJAAkATwBMAAwACwAJAA4ADQAMAA8ADgAMAAwACQBMAAwATABJAA8ADABJAA8ASQBIABAADwBIAEcARgBFABAASABHABMAEgARABEAEABHAEcARQBEAEQAQwBCAEQAQgBBABEARwBEABQAEwARABYAFQAUABcAFgAUABQAEQBEABQARABBABcAFABBABcAQQBAABgAFwBAAD8APgA9ABgAQAA/ABsAGgAZABkAGAA/AD8APQA8ADwAOwA6ADwA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AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAAAAIAAAIC/AAAAgAEAAgADAAMABAAFAAUABgAHAAMABQAHAAEAAwAHAAEABwAIAAAAAQAIAAkACgALAAAACAAJAF0AXgBfAF8AAAAJAAkACwAMAAwADQAOAAwADgAPAF8ACQAMAFwAXQBfAFoAWwBcAFkAWgBcAFwAXwAMAFwADAAPAFkAXAAPAFkADwAQAFgAWQAQABEAEgATAFgAEAARAFUAVgBXAFcAWAARABEAEwAUABQAFQAWABQAFgAXAFcAEQAUAFQAVQBXAFIAUwBUAFEAUgBUAFQAVwAUAFQAFAAXAFEAVAAXAFEAFwAYAFAAUQAYABkAGgAbAFAAGAAZAE0ATgBPAE8AUAAZABkAGwAcABwAHQAeABwAHgAfAE8AGQAcAEwATQBPAEoASwBMAEkASgBMAEwATwAcAEwAHAAfAEkATAAfAEkAHwAgAEgASQAgACEAIgAjAEgAIAAhAEUARgBHAEcASAAhACEAIwAkACQAJQAmACQAJgAnAEcAIQAkAEQARQBHAEIAQwBEAEEAQgBEAEQARwAkAEQAJAAnAEEARAAnAEEAJwAoAEAAQQAoACkAKgArAEAAKAApAD0APgA/AD8AQAApACkAKwAsACwALQAuACwALgAvAD8AKQAsADwAPQA/ADoAOwA8ADkAOgA8ADwAPwAsADwALAAvADkAPAAvADkALwAwADgAOQAwADEAMgAzADgAMAAxADUANgA3ADcAOAAxADEAMwA0ADQANQA3ADEANAA3AAAAgL8AAIC/AACAPwAAgL8AAIC/AACAPwAAgL8AAIC/AACAPwAAgL8AAIA/AACAPwAAgL8AAIA/AACAPwAAgL8AAIA/AACAPwAAgL8AAIC/AACAvwAAgL8AAIC/AACAvwAAgL8AAIC/AACAvwAAgL8AAIA/AACAvwAAgL8AAIA/AACAvwAAgL8AAIA/AACAvwAAgD8AAIC/AACAPwAAgD8AAIC/AACAPwAAgD8AAIC/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIC/AACAvwAAgD8AAIC/AACAvwAAgD8AAIC/AACAvwAAgD8AAIA/AACAvwAAgD8AAIA/AACAvwAAgD8AAIA/AACAvwAAAD4AAIA+AADAPgAAAAAAAMA+AACAPwAAID8AAAAAAAAgPwAAgD8AAGA/AACAPgAAAD4AAAA/AADAPgAAQD8AAMA+AABAPwAAID8AAEA/AAAgPwAAQD8AAGA/AAAAPwAAwD4AAIA+AADAPgAAgD4AAMA+AACAPgAAID8AAIA+AAAgPwAAgD4AACA/AACAPgAAwD4AAAA/AADAPgAAAD8AAMA+AAAAPwAAID8AAAA/AAAgPwAAAD8AACA/AAAAPwAAAAAAAIC/AAAAgAAAAAAAAAAAAACAPwAAgL8AAAAAAAAAgAAAAAAAAAAAAACAPwAAgL8AAAAAAAAAgAAAAAAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAgL8AAAAAAAAAgAAAAAAAAAAAAACAvwAAgL8AAAAAAAAAgAAAAAAAAAAAAACAvwAAAAAAAIA/AAAAgAAAAAAAAIC/AAAAgAAAAAAAAAAAAACAPwAAgD8AAAAAAAAAgAAAAAAAAAAAAACAPwAAAAAAAIA/AAAAgAAAgD8AAAAAAAAAgAAAAAAAAIC/AAAAgAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAgAAAAAAAAAAAAACAvwAAAAAAAIA/AAAAgAAAgD8AAAAAAAAAgAIABAAJAAIACQAHAAgACgAVAAgAFQATABQAFwARABQAEQAOAA0ADwADAA0AAwABAAYAEgAMAAYADAAAABYACwAFABYABQAQAA==" + } + ] +} diff --git a/src/components/coin/custom-geometries/bahamas-cents-10.tsx b/src/components/coin/custom-geometries/bahamas-cents-10.tsx new file mode 100644 index 0000000..531af7a --- /dev/null +++ b/src/components/coin/custom-geometries/bahamas-cents-10.tsx @@ -0,0 +1,17 @@ +import { useGLTF, useTexture } from "@react-three/drei"; +import { CoinProps } from "@/types/coin"; + +export function BahamasCents10(coin: CoinProps) { + // @ts-expect-error property `nodes` actually exists + const { nodes } = useGLTF("/models/bahamas-cents-10.gltf"); + const texture = useTexture("/api/merge-textures/" + coin.id); + + return ( + <> + + + + ); +} + +useGLTF.preload("/models/bahamas-cents-10.gltf"); diff --git a/src/components/coin/custom-geometries/bahamas-cents-15.tsx b/src/components/coin/custom-geometries/bahamas-cents-15.tsx new file mode 100644 index 0000000..a2a23b0 --- /dev/null +++ b/src/components/coin/custom-geometries/bahamas-cents-15.tsx @@ -0,0 +1,17 @@ +import { useGLTF, useTexture } from "@react-three/drei"; +import { CoinProps } from "@/types/coin"; + +export function BahamasCents15(coin: CoinProps) { + // @ts-expect-error property `nodes` actually exists + const { nodes } = useGLTF("/models/bahamas-cents-15.gltf"); + const texture = useTexture("/api/merge-textures/" + coin.id); + + return ( + <> + + + + ); +} + +useGLTF.preload("/models/bahamas-cents-15.gltf"); diff --git a/src/components/coin/custom-geometries/euro-cents-20.tsx b/src/components/coin/custom-geometries/euro-cents-20.tsx new file mode 100644 index 0000000..4a5872b --- /dev/null +++ b/src/components/coin/custom-geometries/euro-cents-20.tsx @@ -0,0 +1,17 @@ +import { useGLTF, useTexture } from "@react-three/drei"; +import { CoinProps } from "@/types/coin"; + +export function EuroCents20(coin: CoinProps) { + // @ts-expect-error property `nodes` actually exists + const { nodes } = useGLTF("/models/euro-cents-20.gltf"); + const texture = useTexture("/api/merge-textures/" + coin.id); + + return ( + <> + + + + ); +} + +useGLTF.preload("/models/euro-cents-20.gltf"); diff --git a/src/components/coin/index.tsx b/src/components/coin/index.tsx index 0274d53..ba2e017 100644 --- a/src/components/coin/index.tsx +++ b/src/components/coin/index.tsx @@ -2,6 +2,9 @@ import * as THREE from "three"; import { useLoader } from "@react-three/fiber"; import { CoinProps } from "@/types/coin"; import { useEffect, useMemo } from "react"; +import { EuroCents20 } from "./custom-geometries/euro-cents-20"; +import { BahamasCents15 } from "./custom-geometries/bahamas-cents-15"; +import { BahamasCents10 } from "./custom-geometries/bahamas-cents-10"; const SafeEdgeMaterial = ({ edge }: Pick) => { const edgeTexture: THREE.Texture = useLoader( @@ -23,10 +26,8 @@ const SafeEdgeMaterial = ({ edge }: Pick) => { ); }; -export const CoinInstance = ({ +export const BaseCoin = ({ orientation, - size, - thickness, color, obverse, reverse, @@ -55,15 +56,7 @@ export const CoinInstance = ({ return ( <> - + {edge?.picture ? ( @@ -92,3 +85,28 @@ export const CoinInstance = ({ ); }; + +export const CoinInstance = (coin: CoinProps) => { + if ( + coin.value?.numeric_value === 0.2 && + coin.value?.currency?.name === "Euro" + ) { + return ; + } + + if ( + coin.value?.currency?.name === "Dollar" && + coin.issuer?.code === "bahamas" + ) { + switch (coin.value?.numeric_value) { + case 0.15: + return ; + case 0.1: + return ; + default: + break; + } + } + + return ; +}; diff --git a/src/components/pile/coin-instances.tsx b/src/components/pile/coin-instances.tsx index 6dc7a1e..cb4c154 100644 --- a/src/components/pile/coin-instances.tsx +++ b/src/components/pile/coin-instances.tsx @@ -33,8 +33,9 @@ export const CoinInstances = (coinProps: CoinProps) => { Math.PI * (Math.random() * 2 - 1), Math.PI * (Math.random() * 2 - 1), ); + at(index).scaleOverride([size / 16, thickness / 16, size / 16]); }); - }, [at, count]); + }, [at, count, size, thickness]); return ( diff --git a/src/components/showcase/index.tsx b/src/components/showcase/index.tsx index d67c077..542f20f 100644 --- a/src/components/showcase/index.tsx +++ b/src/components/showcase/index.tsx @@ -27,7 +27,7 @@ const SpinninType = ({ } if (category === "banknotes") { - ref.current.rotation.y += delta; + ref.current.rotation.x += delta; return; } @@ -44,7 +44,18 @@ const SpinninType = ({ return ( - + diff --git a/src/pages/api/merge-textures/[id].ts b/src/pages/api/merge-textures/[id].ts new file mode 100644 index 0000000..1f55ead --- /dev/null +++ b/src/pages/api/merge-textures/[id].ts @@ -0,0 +1,137 @@ +import type { NextApiHandler } from "next"; +import { readFile, readdir } from "fs/promises"; +import path from "path"; +import { spawn } from "child_process"; + +const asyncSpawn = (command: string, args: string[]) => { + return new Promise((resolve, reject) => { + const child = spawn(command, args, { + stdio: "inherit", + }); + + child.on("error", reject); + child.stdout?.on("data", process.stdout.write); + child.stderr?.on("data", process.stderr.write); + child.on("close", (code) => { + if (code === 0) { + resolve(code); + } else { + reject(code); + } + }); + }); +}; + +const getCoinPath = async (id: string) => { + const countries = await readdir("./public/coins"); + for (const country of countries) { + const coins = await readdir(path.join("./public/coins", country)); + for (const coin of coins) { + if (coin === id + ".json") { + return path.join("./public/coins", country, coin); + } + } + } +}; + +const getPreviousResult = async (id: string) => { + try { + return await readFile(path.join("./public/photos/joined", id + ".jpg")); + } catch { + return; + } +}; + +const generateImage = async (id: string) => { + const previousResult = await getPreviousResult(id); + + if (previousResult) { + return previousResult; + } + + const coinPath = await getCoinPath(id); + + if (!coinPath) { + return; + } + + const coin = JSON.parse(await readFile(coinPath, { encoding: "utf-8" })); + + await asyncSpawn("convert", [ + path.join("./public", coin.obverse.picture), + "-resize", + "256x256!", + path.join("./public/photos/joined", id + "-obverse.jpg"), + ]); + + await asyncSpawn("convert", [ + path.join("./public", coin.reverse.picture), + "-resize", + "256x256!", + path.join("./public/photos/joined", id + "-reverse.jpg"), + ]); + + if (coin.edge?.picture) { + await asyncSpawn("convert", [ + path.join("./public", coin.edge.picture), + "-resize", + "512x64!", + path.join("./public/photos/joined", id + "-edge.jpg"), + ]); + } else { + await asyncSpawn("convert", [ + "-size", + "512x64", + "xc:" + coin.color, + path.join("./public/photos/joined", id + "-edge.jpg"), + ]); + } + + await asyncSpawn("convert", [ + path.join("./public/photos/joined", id + "-obverse.jpg"), + path.join("./public/photos/joined", id + "-reverse.jpg"), + "+append", + path.join("./public/photos/joined", id + ".jpg"), + ]); + + for (let index = 0; index < 4; index++) { + await asyncSpawn("convert", [ + path.join("./public/photos/joined", id + ".jpg"), + path.join("./public/photos/joined", id + "-edge.jpg"), + "-append", + path.join("./public/photos/joined", id + ".jpg"), + ]); + } + + return await readFile(path.join("./public/photos/joined", id + ".jpg")); +}; + +const handler: NextApiHandler = async ({ query }, res) => { + if (typeof query.id !== "string") { + res.status(400).json({ + message: `Invalid id ${JSON.stringify(query.id)}`, + }); + return; + } + + try { + const image = await generateImage(query.id); + + if (!image) { + res.status(404).json({ + message: `Coin ${JSON.stringify(query.id)} not found`, + }); + return; + } + res.setHeader("Content-Type", "image/jpg"); + res.status(200).send(image); + } catch (error) { + console.error(error); + res.status(500).json({ + message: `Something went wrong`, + error: String(error), + }); + } +}; + +export default handler;