Although the objectives of the TextureMind Framework were clear from the outset, the project has constantly expanded without defined boundaries. Now, after years of maturation, it can be said that the framework has established fairly clear boundaries. The framework will be used to create cross-platform applications and other types of software with minimal effort, the highest achievable backward compatibility, and the fewest possible external dependencies. This scenario is ideal, for instance, for remote desktop software like TMD, but it is also well-suited for applications requiring a high degree of portability and scalability (e.g., a medical image viewer that needs to run anywhere or a video game). Conversely, the framework is not intended to serve as a container or starting point for solutions that rely heavily on complex external dependencies, do not require compatibility with older systems, or where existing solutions have already reached a very high level of maturity. Artificial intelligence is a perfect example: it would make no sense to use the framework to develop proprietary AI solutions when there are already hundreds of well-proven options available for Python (e.g., PyTorch, vLLM, Stable Diffusion) that require a vast number of external dependencies, where you need only Ubuntu 24.04 to run and compatibility with older systems is basically useless. In this case, the framework would be used only to write the application that communicates with an AI server, which would be developed as a separate project in Python or C++ using traditional environments.
Once these boundaries are defined, the framework can have even clearer objectives, such as reducing external dependencies, developing proprietary solutions and porting to other operating systems.













This demo is not a great evolution of the demo already published on youtube. The big difference is in the clean up and the fact that you can safely run in your pc without issues (be sure to have vulkan libraries installed). If you like this project and you want that it will be continued in the future, please make a donation to support my work. It will be appreciated.





The layout of the mesh doesn't have to match exactly with the material's one: if the mesh has the required vertex attribute then it's used, otherwise 0 values are used instead. It's for the material to decide how to use the vertex attributes offered by the mesh. In this way, a single material can be used to render any kind of mesh. Of course, a mesh without normals cannot render diffuse or specular, or without texcoords cannot render textures, normal maps and so on.
















