1
$\begingroup$

I created a new scene and deleted everything in it (the lamp, the camera, and the cube). When I save this file, its size is 438 KB.

I then import an .stl file, the .stl file is 7,754 KB.

When I save the scene, the resulting file grows from 438 KB to 10,365 KB. That's a difference of 9,927 KB, much larger than the .stl file, which is an increase of 28%.

Why is the .stl mesh file size so bloated when saved in a Blender scene?

$\endgroup$
  • 1
    $\begingroup$ there are two kinds of STL, binary (very efficient storage, but not human readable with a texteditor) and ASCII (not efficient storage, but human readable) : en.wikipedia.org/wiki/STL_(file_format) I suspect you are importing a binary STL, Blender doesn't export binary STL files. related different filetype but same scenario: blender.stackexchange.com/questions/43737/… $\endgroup$ – zeffii Jun 27 '16 at 20:26
  • $\begingroup$ @zeffii I hadn't thought about the binary vs ASCII issue. You're right; they are binary STLs. I wonder what the results would be with ASCII STL files... $\endgroup$ – Justin Jun 27 '16 at 20:37
2
$\begingroup$

Blender stores a lot more mesh information than an STL file. An STL file is a basic «geometry only» file format suitable for 3D printing and fabrication processes, it saves little else beyond the geometry itself. There is no color, UV coordinates, normals or anything else saved in the file.

A blender file has much more complex geometry system suited for a lot more than just fabrication processes. It stores not only geometry, but also UV Coordinates, vertex colors, normal information, mesh selection state, vertex groups, among others, it also stores the geometry itself in a much more versatile format allowing complex geometries beyond triangles, like quad faces and NGons.

Besides that there may be other complexities involved like inefficiencies of the file format/application, file compression, or data caching.

Under the menu File > User Preferences > File > Save & Load you will find a Compress File option, which if ticked should have Blender store information in a much more compact way.

$\endgroup$
0
$\begingroup$

When a file is imported, even into an otherwise unpopulate scene, Blender adds a series of hierarchical information, including a set of node trees, UI information (which is why opening someone else's Blender file can change your UI view -- although this can be prevented) and tool information (ex: brushes) and a couple of large array of application data... From an archive standpoint, if you do not need higher-level data, saving an stl is fine... the rest added by Blende allows you to migrate a file from one person to another and carry along a lot of stuff -- mostly useful.

$\endgroup$
  • $\begingroup$ Surely UI and tool information is included in the original 438KB the OP mentioned? $\endgroup$ – Ray Mairlot Jun 27 '16 at 18:19
  • $\begingroup$ Fair point, although I notice that naked file sizes are even influenced by whether you are saving a Cycles, BI or GE file... someone with Periscope or something similar could parse the binary portions better than I.... and I know that UI elements like add-ons you have installed impact size, although I am not sure it that is just a path or something more.... But I used pretty fast and loose just saying UI... $\endgroup$ – rcgauer Jun 27 '16 at 18:25
  • $\begingroup$ I'm assuming that Blender stores the surface normals of each polygon (instead of calculating them on the fly). Also, I wonder if other information is calculated and stored like each polygon's neighbors. This data is definitely not part of the .stl file. Could that make for a 28% increase? $\endgroup$ – Justin Jun 27 '16 at 18:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.