Stream: Google Summer of Code

Topic: surface skinning


view this post on Zulip Notification Bot (Mar 24 2026 at 03:25):

A message was moved here from #new members > Introduction by Sean.

view this post on Zulip Sean (Mar 24 2026 at 03:46):

Hi @Bilge Arıkca and thanks for the intro and even more detailed direct message. Please do post technical discussions in the open so everyone in the community can benefit. You're welcome to repost or paraphrase what you sent, or we can simply continue the discussion here.

As for what you sent, it's great to see you're applying what you've been learning with ntop to our implicit modeling challenges in BRL-CAD. Our hybrid representation is exactly what this is a really hard problem to solve, we aren't just dealing with meshes but a mix of CSG prims, BREP/NURBS, triangle meshes, volumetric data, and more.

Faithful contouring might work but that's a relatively new paper that I've not read up on yet besides skimming it now. On the surface, the approach sounds reasonable if i'm understanding it correctly. They essentially snap geometry to voxel points and make topological decisions there that preserve features seemingly better than marching cubes or signed fields. Looks like they also leverage a neural net for both encoding and remeshing I think. That's certainly intriguing, but will require a LOT more in depth study and testing to see if it's viable -- honestly that could be the entirety of a gsoc project in itself.

To answer your question -- no the method doesn't need to be prescribed but you should have a grasp of what option(s) will be looked into (e.g., during the bonding phase) so once it's time to code you can hit the ground. For example, you hinted at a distaste for ray casting, yet ray tracing is literally the ground truth for some representation schemes (implicit geometry) where there is no explicit geometry, so you'll have to reconcile that in your proposal plans somehow.

You can find the source code in the brl-cad/brlcad repository on github. Focus on src/librt for geometry logic and src/libged for the meshing commands. There's a lot of geometry algorithms there and in libbg for basic geometry operations. Proposal doesn't need to be 100% locked in, but should describe a viable path forward. If you get a draft this week, I can probably provide a sanity check before the deadline but it depends how last minute and how many others do the same. Hope you keep up the enthusiasm and keep the conversation going. Again, welcome!

view this post on Zulip Sean (Mar 24 2026 at 04:11):

One practical detail I noticed is the FaithC reference implementation is not directly usable for several reasons, the license is not open source unfortunately being the biggest. Might be able to implement the paper concepts adapted to BRL-CAD so not off the table, but severely changes the dev prospect.

view this post on Zulip Bilge Arıkca (Mar 28 2026 at 13:23):

Sean said in #Google Summer of Code > surface skinning:

Hi Bilge Arıkca and thanks for the intro and even more detailed direct message. Please do post technical discussions in the open so everyone in the community can benefit. You're welcome to repost or paraphrase what you sent, or we can simply continue the discussion here.

As for what you sent, it's great to see you're applying what you've been learning with ntop to our implicit modeling challenges in BRL-CAD. Our hybrid representation is exactly what this is a really hard problem to solve, we aren't just dealing with meshes but a mix of CSG prims, BREP/NURBS, triangle meshes, volumetric data, and more.

Faithful contouring might work but that's a relatively new paper that I've not read up on yet besides skimming it now. On the surface, the approach sounds reasonable if i'm understanding it correctly. They essentially snap geometry to voxel points and make topological decisions there that preserve features seemingly better than marching cubes or signed fields. Looks like they also leverage a neural net for both encoding and remeshing I think. That's certainly intriguing, but will require a LOT more in depth study and testing to see if it's viable -- honestly that could be the entirety of a gsoc project in itself.

To answer your question -- no the method doesn't need to be prescribed but you should have a grasp of what option(s) will be looked into (e.g., during the bonding phase) so once it's time to code you can hit the ground. For example, you hinted at a distaste for ray casting, yet ray tracing is literally the ground truth for some representation schemes (implicit geometry) where there is no explicit geometry, so you'll have to reconcile that in your proposal plans somehow.

You can find the source code in the brl-cad/brlcad repository on github. Focus on src/librt for geometry logic and src/libged for the meshing commands. There's a lot of geometry algorithms there and in libbg for basic geometry operations. Proposal doesn't need to be 100% locked in, but should describe a viable path forward. If you get a draft this week, I can probably provide a sanity check before the deadline but it depends how last minute and how many others do the same. Hope you keep up the enthusiasm and keep the conversation going. Again, welcome!

Thanks for the comprehensive feedback, and I sorry for the late response. Unfortunately, I had two midterms in a row this week, so I haven't been able to look into anything until now.I have started to work again now. I expect to send my findings and a draft proposal within the today or at most tomorrow.

I’ve just downloaded the source code and am currently studying the relevant libraries. I’m searching for new articles and techniques which would be implementable and an open-source alternative for our problem, and your feedback on ray casting has really changed my perspective.I am searching that further. Thanks again for your guidance.

view this post on Zulip Bilge Arıkca (Mar 31 2026 at 02:12):

Bilge Arıkca:

I did searched the workflows generally used and lastly used techniques. Among traditional workflows voxel based one became my favorite. And I choosed “Faithfull Contouring” among latest methods it seemed easier to implement voxel based workflow and also seems effective to me. (maybe i am missing smt but idk)
-divide your 3D object into robust voxels

As you said it’s low risk and effective. I think that we can change dual contouring with faithfull contouring.

Here is my little summary on faithfull contouring : Actually it Works similar to dual contouring in its base but skips some intermediate steps. It finds active voxels, calculate centroids and uses them as vertexes, anchor fitting with Quadratic Error Minimalization (QEF), then mapping those vertexes. Real difference derives from how they choose that centroids within voxels, in dual contouring uses tangent planes and find where they intersect, faithfull contouring uses triangulated mesh as an extra, it find the points where our raw triangular mesh and voxels intersect and put the vertexes on those points.

Why we want to use faithfull contouring : It solves the open surface and internal cavities problem because it doesnt treat the vertexes as inner and outer, it doesnt use a strict surface it gets along with the raw shape itself, also it preserve sharp edges and allows us to meshing in high resolution without needing hyper memory or RAM. And its kinda hybrid.

I also found some other latest techniques just like, one shot method for winding points, adaptively sampled distance fields, topological ofsetts etc. There is also “Tri-Plane Representation” it messes my mind a little but i dont think that would fit the best. Those techniques has their own advantages however implementing those or making them work without huge RAM capacity is a little hard. So i didnt based them. And about our hybrid design problem i think faithfull contouring could solve volumetric shapes, triangles, boolean operations etc. However i am not sure about nurbs and still dont know how we can really implement those smooth lines into our mesh maybe we could choose vertexes on them at a fixed frequency?
(And about ray casting please tell me we are not using this and its just usefull for lidars )

Bilge Arıkca: And about my experience with representation formats, I never got familiar with them in code level but I dealt with CSG hierarchy and Implicit tree a lot. This year I started using NTopology for our lightweighting processes for our rover parts and designing and airless tyre we used topology optimization and implicit modelling together. While making our models we used scratch like blocks existing in ntop consisting boolean operations different mesh styles and to convert our models into usable cads we tried lots of different workflows and processes i got familiar with how those operations and different types of meshes really work and how can i produce smt without crashes. (they gave me headaches because of lattice structures and the complex geometry thats why i want to deep dive into this topic btw)

Bilge Arıkca: For the last part I have some questions,

Tbh, I really enjoyed the research and finding about how the things actually works and a little comprehension of the underlying math like set theory applications and algortihms used for graphics are incredible. I didn't deep dive into formulas so much however everything seems so exciting.

view this post on Zulip Bilge Arıkca (Mar 31 2026 at 02:19):

Hii Sean, I know it is kind of last minute and if you can't take a look at my draft it is not a problem. It took much more than I expected to finalize my draft. But anyways here it is, I assume a bad one is better than a nonexistent one. My foundings are in here already. I didnt fill up optional spaces yet. Other than that I am fully open for your feedback and criticism on my proposal. Thanks for bearing with me through the setup phase and for taking a look at my proposal even if you can't.

GSoC BRL-CAD Bilge.docx

view this post on Zulip Sean (Apr 10 2026 at 23:02):

@Bilge Arıkca As I'm sure you surmised, there was not time at the last minute, but all proposals are being reviewed. Thank you for all the time and effort you put into your draft.

view this post on Zulip Bilge Arıkca (May 02 2026 at 20:25):

Hi @Sean thanks so much for all your support during the proposal process. Unfortunately, my proposal got rejected. However, I am still interested in this project. I wanted to ask if I could still work on it, and if you are willing to guide me through it. I will be probably working at a slower pace since I need to work to cover my college expenses, but I really want to research this further, find better and more optimized approaches, and execute this project to the best of my ability, even if it takes a bit longer.


Last updated: May 03 2026 at 01:53 UTC