Outline
This is a genuine research project. Do not apply if you are unfamiliar with agentic coding and its current limitations.
BRL-CAD’s libgcv is the central "Swiss Army knife" for converting geometry between BRL-CAD’s CSG format and external formats (STL, OBJ, STEP, etc.). However, many converters rely on legacy codebases with inconsistent APIs. This project will use AI coding agents (e.g., Aider, Cursor, or custom LLM pipelines) to refactor these converters, implement new modern formats, and standardize the plugin architecture through a "vibe coding" workflow—where the developer provides high-level geometric intent and the agent manages the implementation details.
Details
The project focuses on leveraging autonomous agents to handle the "heavy lifting" of C/C++ development:
- Agentic Refactoring: Deploying agents to identify and fix memory leaks, standardize error handling, and migrate legacy converters into the unified libgcv plugin API.
- Vibe-Driven Prototyping: Using high-level natural language prompting to rapidly scaffold new converters for modern formats like glTF, USD, or MaterialX.
- Automated Testing & Edge Cases: Using agents to analyze geometric specifications and automatically generate exhaustive test suites that verify conversion fidelity for specific formats, complex NURBS, mesh entities, etc.
- Knowledge Distillation: Creating an agent-driven "GCV Developer Guide" that can help future contributors "vibe code" their own conversion plugins by providing context-aware code snippets and API mapping.
Expected Outcome
- A modernized, clean libgcv library API with significantly reduced complexity for adding new formats.
- Updated libgcv API that tracks important geometry characteristics like representation format conversions, preservation of hierarchy, solidity, object counts, physical properties, and attribute metadata.
- At least three new functional conversion plugins (e.g., glTF or USD) developed primarily through agentic workflows.
- A set of "vibe coding" templates and system prompts optimized for BRL-CAD’s unique C/C++ architectural style.
Future/Stretch-Goal Possibilities
- Self-Healing Converters: Agents that can automatically adjust conversion tolerances when a "leaky" mesh is detected.
- Natural Language Conversion: A CLI interface where users can "describe" how they want their geometry converted (e.g., "Export this to STL but simplify the mesh density by 50%").
- Research Paper: An academic research paper summarizing the findings.
Project Properties
Skills
Languages: C/C++ (Core), Python (for agent orchestration).
Tools: AI Coding Agents (Aider, Cursor, OpenDevin), LLM Prompt Engineering.
Domain: 3D Geometry formats and conversion logic.
Difficulty
Medium/Hard (While the AI does the writing, the dev must have a deep understanding to "steer" the agent through complex C/C++ logic and data structure changes.)
Size
Long (350h)
Additional Information
Outline
This is a genuine research project. Do not apply if you are unfamiliar with agentic coding and its current limitations.
BRL-CAD’s libgcv is the central "Swiss Army knife" for converting geometry between BRL-CAD’s CSG format and external formats (STL, OBJ, STEP, etc.). However, many converters rely on legacy codebases with inconsistent APIs. This project will use AI coding agents (e.g., Aider, Cursor, or custom LLM pipelines) to refactor these converters, implement new modern formats, and standardize the plugin architecture through a "vibe coding" workflow—where the developer provides high-level geometric intent and the agent manages the implementation details.
Details
The project focuses on leveraging autonomous agents to handle the "heavy lifting" of C/C++ development:
Expected Outcome
Future/Stretch-Goal Possibilities
Project Properties
Skills
Languages: C/C++ (Core), Python (for agent orchestration).
Tools: AI Coding Agents (Aider, Cursor, OpenDevin), LLM Prompt Engineering.
Domain: 3D Geometry formats and conversion logic.
Difficulty
Medium/Hard (While the AI does the writing, the dev must have a deep understanding to "steer" the agent through complex C/C++ logic and data structure changes.)
Size
Long (350h)
Additional Information
Erik Greenwald