GSoC 2020 Overview: Improving IO performance for big files

Ankit Meel’s GSoC project, Improving IO performance for big files, was mentored by Dr. Sybren Stüvel and Dr. Howard Trickey. This project initially aimed to improve the import/export times of .PLY, .STL files, but later focused on reworking the Wavefrom OBJ IO performance.

Ankit Meel managed to implement a new fully featured importer and exporter for OBJ, witnessing massive performance increases in big files. He provides these tables below to show the extent of the speedups:

Default cube + 9 subdivision
surface levels. (triangulated faces)
File Size (MB)Time Old (s)Time New (s)Speed-up
Import365101156.7X
Export365132149.4X

 

Default Cylinder: 2038 copies.
(non-triangulated faces)
File Size (MB)Time Old (s)Time New (s)Speed-up
Import2084.61.556x
Export2012.3.913x

 

Ankit goes into details explaining how these speed gains where achieved in the project’s final report, where he credits the move from python (used in the old IO modules) to C++ as one of the performance boosters among other things. Ankit also intends to continue working on the PLY and STL modules even after his GSoC has ended!

This post is part of a series overviewing the various Google Summer of Code 2020 projects.
Every year, google funds students over the summer to work for open source projects.
This year, Google has granted 10 projects for the Blender Foundation. The students behind these projects are assigned mentors from the Blender development team, which follow their progress over the summer and then assess their work. All of the GSoC 2020 projects have successfully passed their mentors’ evaluations!

Advertisement