Trainign an AI to generate documentation and implement features in specific projects source Code

Hello everyone!

I’ve been thinking about something for a while now. For instance, I’m currently working with the source code of Blender 3D, but the documentation available on Blender’s website for developers is truly disappointing. It’s poorly organized, provides very limited information, and when we ask for help on Blender’s chat, we’re often dismissed or spoken down to. It’s incredibly frustrating, and I’ve had a very negative experience because of it!

So, my idea is as follows:

Would it be possible to train an AI on the workings of C++ and other relevant languages needed for coding based on a specific program’s source code? In this case, with Blender, we’d need proficiency in C++, Python, CMake, GLSL, and CUDA. I would like to feed the AI the entire source code of Blender so that it can understand what each function does, which classes belong to which objects, and so on. This would serve two purposes: first, it could generate highly detailed documentation, and second, it could allow me to ask it to perform tasks like “implement a hardware tessellation system with LODs in the viewport, which should also be available in the render window.”

Ideally, this AI would then be capable of writing the right functions, in the correct files (or creating new ones if needed), using the appropriate classes and structures, and adding any missing elements—all while optimizing the code as much as possible. Generally, it would even interpret code without requiring prior compilation, thus helping to avoid errors.

To be clear, this AI would be trained solely and exclusively for the “Blender 3D” software. Beyond the source code we provide it to train on, plus its conversational and arithmetic abilities, it would be limited to this one purpose! Personally, I see real value in this approach, as it would accelerate software development by focusing on optimization as well.

The idea here is to train it for one project, and when that project or task is successfully implemented, it’s retrained for the new project or task at hand. This could modernize older software, for instance, by converting single-threaded applications to multi-threaded.

Do you think it would be possible to carry out a project like this? (Though I’m already convinced it could be!)