Questions about ShapeSpark file structure

  1. Does there are some limits of files in the extra-assets? For example:
  • file names:
    • spaces,underscores,dashes,dots,tildes(~),case of letters etc.
    • Length of file name
    • First letter of file name
    • mixture of letters and punctuation such as: wall112PKZ01-105diban.VRayNormals.jpg
  • file number or sizes
    • Number of files
    • Size of single file
    • Size of all of files in the extra-assets
  1. Does there are some limits about format of files in the extra-assets?

  2. Seems it doesn’t support code as follows to link CSS file in head-end.html:

  <link href="body.css" rel="stylesheet" type="text/css" />

and

   <style>
       @import "body.css";
   </style>

Here are limitations for the files in extra-assets folder:

  • Allowed file types and extensions: images (.jpg, .jpeg, .png, .gif, .webp, .ico, .svg), audio (.mp3, .m4a, .oga), videos (.mp4), json (.json)
  • Allowed characters in file names: letters a-z, A-Z, digits 0-9, and chars: . _-
  • Video files size is limited to 100 MB, currently there is no limit for other file types.
  • Total size of all files is limited to 7GB

CSS/JavaScript/HTML files are not allowed as extra-assets, you need to either inline all your code in the body-end.html or head-end.html or link source files from external hosting.

Thanks for your explanation, that’s very helpful.
And I have another question about texture picker coding. According to code in shapespark-viewer-api/body-end.html at master · shapespark/shapespark-viewer-api · GitHub.
Pictures of texture are listed one by one. In my opinion, if there are too many texture images and all of them are in the extra-assets folder, the amount of code will be too large.Is there any way to reduce the amount of code, such as iterative access. On the other hand, I don’t know much about JSON. Maybe JSON can do this.

You can store any data in JSON, so also a list of texture file names. A simpler approach could be, for example, to use identical file name prefix for all the textures with numeric suffix (like: texture0.jpg, texture1.jpg, texture2.jpg). This way you could generate all required file names with a loop in your code.