Ziya Burak
Göztaş
Mechatronics engineer. I turn CAD and simulation geometry into data and models: B-Rep learning for part retrieval, generative meshing, and simulation automation.
Work
BracketSearch
A 3D part search tool that lets designers find an existing part before they draw a new one. I lead its development, from the learning approach to the pilot release.
- Started with point clouds and meshes, found they lost the structure that separates similar parts, and moved to B-Rep graph learning (UV-Net, BRepNet) on CAD faces and edges.
- Built the pipeline that turns bulk STEP files of production parts into training data, and fine-tuned the model on them.
- Two-stage retrieval: a geometric hash for exact matches, learned embeddings for similar parts. Desktop client in PyQt5 on OpenCASCADE B-Rep geometry.
- Designed the PLM integration: a service extracts features and material data from JT files and writes them back to Teamcenter.
MeshCrafter
A generative model that writes a finite-element mesh element by element, the way a language model writes a sentence: a graph neural network encodes the part, and an autoregressive decoder emits the refined mesh. Started in a TÜBİTAK 2209-B research project with Ford Otosan as industry partner; I am the sole developer.
- Paired meshesAn ANSA API script exports a refined mesh and a raw mid-surface mesh for every part. Ansa_Macro
- Graph featuresEach mesh becomes canonically ordered graph data with normals, curvature, boundary and adjacency. NasMeshLib
- GenerationA GNN encoder and an autoregressive decoder learn to produce the refined mesh from the raw one.
NasMeshLib's curvature is checked against shapes with known answers:
| Shape | Mean curvature | Exact | Gaussian curvature | Exact |
|---|---|---|---|---|
| Sphere, R = 10 | 0.0999 | 0.1 | 0.0100 | 0.01 |
| Cylinder, R = 5 (quads) | 0.1000 | 0.1 | 0.0000 | 0 |
| Plane | 0 | 0 | 0 | 0 |
Mesh settings from geometry
Can a model pick Ansys Mechanical mesh settings from a part's geometry, before meshing? I split GrabCAD automotive STEP assemblies into 317 parts with pythonocc, extracted B-Rep features, and drove Ansys through its Python API to mesh every part with 64 setting combinations: about 21,000 automated meshing runs. XGBoost models then predict the settings and forecast element quality.


That is one part. Across parts the model has never seen, the signal is weaker (5-fold cross-validation, split by part):
| Model | R² | MAE | Baseline MAE |
|---|---|---|---|
| Quality forecast, element quality mean | 0.23 | 0.036 | 0.043 |
| Quality forecast, element quality std | 0.29 | 0.020 | 0.024 |
| Settings prediction, mean over 8 targets | 0.20 | – | – |
The thesis reported R² of 0.65–0.96. A later review found that noise augmentation ran before the train/test split, putting near-copies of training rows into the test set. Split correctly, the mean R² drops from 0.83 to 0.20. The lesson I took: a few global numbers cannot describe how a mesher sees a part, which is why my later work represents the part by its topology.
Education
- M.Sc., in progress
- Deep Learning, Finite Element Method, Engineering Mathematics, Modern Control Systems.
- B.Sc. Mechatronics Engineering, Sakarya University of Applied Sciences
- January 2025. Thesis advisor: Assoc. Prof. Ergün Nart.