xeokit / xeokit-convert

Convert various AEC model formats for efficient viewing in the browser with xeokit.
https://xeokit.github.io/xeokit-convert/docs/
Other
52 stars 54 forks source link

Cannot create a string longer than 0x1fffffe8 characters #131

Closed kushal154 closed 9 months ago

kushal154 commented 9 months ago

I am trying to convert around 550 MB of gltf to xkt format using the following command on M1 pro.

node xeokit-convert-1.1.15-beta-1/convert2xkt.js -s bim.gltf -o bim.xkt -l

This leads to the following exception.

[convert2xkt] [ERROR]: Error: Cannot create a string longer than 0x1fffffe8 characters

Any help would be appreciated.

xeolabs commented 9 months ago

NodeJS has a limitation in which it can't have strings larger than 1GB, which limits the size of the glTF files we can convert with convert2xkt.

For the case of converting IFC->XKT, our commercial ifc2gltfconverter has the option to split its output glTF into chunks, each of which is small enough for convert2xkt to convert.

More details for split IFC->glTF->XKT conversion here: https://xeokit.github.io/xeokit-model-conversion-tests/ifc-tests.html

I don't know if that applies to your use case, however. If you're just converting glTF, then perhaps you could either split the glTF somehow. Also what might help is to ensure that you're not embedding geometry and textures in the glTF itself, and instead having those as attachments. This would keep the glTF JSON part minimal, to ensure the smallest string possible withing NodeJS memory.

kushal154 commented 9 months ago

Thanks for the quick response. I would like to eventually achieve IFC->XKT. How do I evaluate or get access to the ifc2gltfconverter? Whom should I reach out to?

xeolabs commented 9 months ago

@kushal154 no problem - contact here to get access to ifc2gltfconverter: https://xeokit.io/for-business