# Workflow of the Naive Surface Nets algorithm

I'm trying to understand the Naive Surface Nets algorithm which is related to surface generation out of Voxels. I've learned of it here

So far I understood that the naive surface nets algorithm calculates the "optimal" edge crossings for a given input. Problem is that I don't understand how it's supposed to calculate the edge crossings compared to the marching cubes algorithm. If the input data is represented in binary values (only one and zero) like for marching cubes algorithm shouldn't the computation of the edge crossings have the same results?

I suppose a step by step showcase of what the algorithm does for aquiring the surface of 2D sample voxels data would help me a lot understanding it.
For example for this data the marching cubes algorithm gives as result the image show below (the lines). Would the naive surface nets algorithm return the same result?

Where red stands for binary 1 and blue for binary 0 asuming each voxel has the same space between each other (as always I think).

• Thanks for responding @Evil. I think I miswritten my question if people think I want to see an implementation. If so I would have posted it on Stackoverflow. My interest relies only in graphical represented examples how the naive surface nets algorithm makes lines or triangles (e.g. vertices) from voxel data. Mar 3, 2017 at 15:59
• @Evil I've edited my question ;) Mar 3, 2017 at 17:11
• Thanks for the edits. Your question seems on-topic here (as you are asking a conceptual question). However, I count about four separate questions here. We prefer that you ask a single question per post -- if you have multiple questions, you can post them separately. Can you edit your question to narrow it down and ask about one specific aspect that you're unsure of? You're welcome to post more than one question about different aspects that you're confused about.
– D.W.
Mar 3, 2017 at 22:09
• Nice to hear, that's on-topic @D.W. Yes you're right. Stuff like "what is a voxel" might be already answered. I think I split the question up if it's fine. Mar 3, 2017 at 22:14
• @Evil I'm going to answer my question myself. I understood how naive surface nets work and would like to share my knowledge with the community. Mar 9, 2017 at 19:00