We suggest converting all surfaces and b-reps into meshes as the viewer will anyways convert them internally if they are not meshes. The reason why they get converted into meshes is because it is the format we need to be able to display them in the browser. If you convert them to mesh in GH, then you have control over the quality of your mesh. If you don’t, then our system will convert them into mesh and try to optimize them as much as possible, but you won’t have total control over the quality of your mesh and this process of conversion also adds to the computational time. If possible, try to always build meshes from scratch instead of using b-reps or surfaces and then converting to mesh. Even though building meshes from scratch needs more GH components, maybe some scripting and mathematical calculations, these components are normally more simple and take way less computational time. The more components doesn’t mean always more computational time, it is what each component itself does what matters the most. If you want to know more about the difference between b-reps and meshes, I suggest to read https://www.shapediver.com/blog/shapediver-basics-meshes-vs-b-reps-explained/. I also suggest reading: https://www.shapediver.com/blog/optimizing-grasshopper-definitions-explained/
Regarding exporting/downloading of b-reps or surfaces, just plug those geometries in the ShapeDiverExportDownload component but whatever is going to be displayed, convert to mesh. These processes are done separately.