diff --git a/check_indicav2.cjs b/check_indicav2.cjs new file mode 100644 index 0000000..326eb9a --- /dev/null +++ b/check_indicav2.cjs @@ -0,0 +1,12 @@ +const fs = require('fs'); +const fflate = require('fflate'); + +const zipBuffer = fs.readFileSync('indicav2.titanscene'); +const unzipped = fflate.unzipSync(zipBuffer); +const sceneData = JSON.parse(new TextDecoder().decode(unzipped['scene.json'])); +console.log('cameraProps:', sceneData.cameraProps); +console.log('modelData:', sceneData.modelData); +console.log('sceneObjects length:', sceneData.sceneObjects?.length); +if (sceneData.sceneObjects?.length > 0) { + console.log('Main model transform:', sceneData.sceneObjects[0].transformProps); +} diff --git a/check_new_scene.cjs b/check_new_scene.cjs new file mode 100644 index 0000000..7e7a9ee --- /dev/null +++ b/check_new_scene.cjs @@ -0,0 +1,12 @@ +const fs = require('fs'); +const fflate = require('fflate'); + +const zipBuffer = fs.readFileSync('newmodel.titanscene'); +const unzipped = fflate.unzipSync(zipBuffer); +const sceneData = JSON.parse(new TextDecoder().decode(unzipped['scene.json'])); +console.log('cameraProps:', sceneData.cameraProps); +console.log('modelData:', sceneData.modelData); +console.log('sceneObjects length:', sceneData.sceneObjects?.length); +if (sceneData.sceneObjects?.length > 0) { + console.log('Main model transform:', sceneData.sceneObjects[0].transformProps); +} diff --git a/check_old_scene.cjs b/check_old_scene.cjs new file mode 100644 index 0000000..2b83892 --- /dev/null +++ b/check_old_scene.cjs @@ -0,0 +1,12 @@ +const fs = require('fs'); +const fflate = require('fflate'); + +const zipBuffer = fs.readFileSync('model.titanscene'); +const unzipped = fflate.unzipSync(zipBuffer); +const sceneData = JSON.parse(new TextDecoder().decode(unzipped['scene.json'])); +console.log('cameraProps:', sceneData.cameraProps); +console.log('modelData:', sceneData.modelData); +console.log('sceneObjects length:', sceneData.sceneObjects?.length); +if (sceneData.sceneObjects?.length > 0) { + console.log('Main model transform:', sceneData.sceneObjects[0].transformProps); +} diff --git a/check_scene.cjs b/check_scene.cjs new file mode 100644 index 0000000..120b752 --- /dev/null +++ b/check_scene.cjs @@ -0,0 +1,12 @@ +const fs = require('fs'); +const fflate = require('fflate'); + +const zipBuffer = fs.readFileSync('model.titanscene'); +const unzipped = fflate.unzipSync(zipBuffer); +const sceneData = JSON.parse(new TextDecoder().decode(unzipped['scene.json'])); +console.log('cameraProps:', sceneData.cameraProps); +console.log('modelData extension:', sceneData.modelData?.extension); +console.log('sceneObjects length:', sceneData.sceneObjects?.length); +if (sceneData.sceneObjects?.length > 0) { + console.log('Main model transform:', sceneData.sceneObjects[0].transformProps); +} diff --git a/indicav2.titanscene b/indicav2.titanscene new file mode 100644 index 0000000..2868e4e Binary files /dev/null and b/indicav2.titanscene differ diff --git a/model.titanscene b/model.titanscene new file mode 100644 index 0000000..ca5b73b Binary files /dev/null and b/model.titanscene differ diff --git a/newmodel.titanscene b/newmodel.titanscene new file mode 100644 index 0000000..9408aea Binary files /dev/null and b/newmodel.titanscene differ diff --git a/src/components/ImageTo3DModal.tsx b/src/components/ImageTo3DModal.tsx index a72ad07..bbe162e 100644 --- a/src/components/ImageTo3DModal.tsx +++ b/src/components/ImageTo3DModal.tsx @@ -301,7 +301,8 @@ export const ImageTo3DModal: React.FC = ({ isOpen, onClose, image_url: dataUrl, model_type: meshyModelType, should_texture: meshyShouldTexture, - should_enhance_image: meshyEnhanceImage + should_enhance_image: meshyEnhanceImage, + target_formats: ['glb'] }; if (meshyModelType !== 'lowpoly') { diff --git a/src/pages/Editor.tsx b/src/pages/Editor.tsx index 7c4fbbc..34e9c9b 100644 --- a/src/pages/Editor.tsx +++ b/src/pages/Editor.tsx @@ -403,6 +403,7 @@ export default function Editor() { if (sd.cameraPresets) setCameraPresets(sd.cameraPresets); if (sd.modelData && sd.modelData.data) { + setModelData(sd.modelData); reImportModel(sd.modelData); } } @@ -992,6 +993,7 @@ export default function Editor() { // Re-load model if data exists if (data.modelData && data.modelData.data) { + setModelData(data.modelData); reImportModel(data.modelData); } } catch (err) { @@ -5300,3 +5302,5 @@ export default function Editor() { ); } + + diff --git a/test_zip.cjs b/test_zip.cjs new file mode 100644 index 0000000..be1e172 --- /dev/null +++ b/test_zip.cjs @@ -0,0 +1,9 @@ +const fflate = require('fflate'); + +const zipObj = {}; +zipObj['model.glb'] = new Uint8Array([1, 2, 3, 4, 5]); + +const zipped = fflate.zipSync(zipObj); +const unzipped = fflate.unzipSync(zipped); + +console.log(unzipped['model.glb']); diff --git a/test_zip.js b/test_zip.js new file mode 100644 index 0000000..eaff290 --- /dev/null +++ b/test_zip.js @@ -0,0 +1,10 @@ +const fs = require('fs'); +const fflate = require('fflate'); + +const zipObj = {}; +zipObj['model.glb'] = new Uint8Array([1, 2, 3, 4, 5]); + +const zipped = fflate.zipSync(zipObj); +const unzipped = fflate.unzipSync(zipped); + +console.log(unzipped['model.glb']);