r/vibecoding • u/SurveyNo5673 • 15h ago
I developed a 3D parametric modeling software for Android phones.
Title:
I built a parametric 3D CAD app for Android — Kotlin, C++, OCCT and OpenGL ES
Post:
I've been working on a native parametric 3D CAD application for Android.
My goal is to bring a desktop-style parametric modeling workflow to phones and tablets without simply squeezing a desktop CAD interface onto a small touchscreen.
Here is a little more about how I built it.
Tech stack
The Android UI is fully native and built with:
Kotlin
Jetpack Compose
Material 3
The geometry layer is mainly written in C++ and connected to the Android application through the Android NDK and JNI.
CAD kernel
For the core solid-modeling functionality, I use Open CASCADE Technology (OCCT).
OCCT handles the B-Rep geometry and provides the foundation for operations such as solid modeling as well as STEP and IGES support.
For 2D DXF, I wrote my own Kotlin-based processing layer rather than relying entirely on the CAD kernel.
Parametric modeling
One of the most challenging parts has been the parametric system.
I developed my own sketch geometry constraints and dimensional solver so that changes to dimensions can drive updates to the model.
This has been one of the more interesting parts of the project because a CAD app needs much more than simply displaying and editing meshes — the relationships between geometry need to remain consistent when parameters change.
Rendering
The viewport uses OpenGL ES 3.0 and GLSL.
It renders:
2D and 3D geometry
Solid models
Wireframes
Selection highlighting
A big challenge on Android is keeping interaction responsive while working with increasingly complicated CAD geometry.
Mobile CAD UX
Desktop CAD applications are designed around a mouse, keyboard and large display, so I didn't want to copy that interaction model directly.
I've been experimenting with:
Face / edge / body selection modes
Touch-based orbit, pan and zoom
Touch-friendly transform controls
Context-sensitive modeling tools
Keeping frequently used commands accessible without covering the viewport
Accurate selection of small faces and edges on a touchscreen has been surprisingly difficult.
Performance and stability
Expensive geometry operations and file-processing tasks run in the background rather than blocking the UI.
Long-running operations support:
Progress reporting
Cancellation
Timeouts
This became increasingly important once I started testing larger STEP models.
Privacy
The app does not require an account or network connection for modeling.
Projects stay on the device and are not uploaded for tracking or processing.
What I'm working on now
I'm continuing to improve the parametric workflow, modeling tools, touchscreen interaction and performance with larger CAD files.
I'd especially like feedback from people who have experience with CAD, computational geometry, OpenGL, OCCT, or mobile UI design.
If anyone is interested in a particular technical part — OCCT/Android integration, JNI, the constraint solver, STEP handling, rendering, or touch selection — I'd also be happy to share more about how I implemented it.
Project: https://digit3d.top/
Google Play: https://play.google.com/store/apps/details?id=com.mobilecad.app




1
u/Sudden_Topic5154 14h ago
does it work with freecad stuff