- Why Spatial?
- Developer District
Using AGM provides developers with a proven solution for 3D engineering application development. With AGM, the risk associated with developing 3D applications is significantly reduced, since development requires a remarkable amount of time and resources when starting from scratch.
The core module of AGM provides a comprehensive set of classes and functions for functionality which are common among many types of 3D applications, such as Object Lifecycle Management, Undo/Redo, Save/Restore, Selection and Highlighting, Commands, and more. In addition, several utilities for increasing productivity are also provided, such as Code Generator and Project Wizards, Debug Tools, and so on.
AGM provides the capability for developing a commercial grade Pre-Post application quickly. With optimized data structures to represent first and second-degree surface and volume mesh structures, comprehensive Pre-Post functionalities are provided. This module also provides templates for integrating your meshers and solvers. Source code for these capabilities are customizable and extensible to fit your needs.
AGM provides the means to create solid models using common sketch tools approach: create sketch plane, create a 2D profile, extrude or rotate 2D profile, and so on. The sketcher supports user editable geometries such as NURBS, polyline, rectangle, circle, arc, line, and more.
AGM provides for a common foundation of functionality among robotics applications. For example, representing robots, connecting robot controllers, importing work models and jigs, generating welding points, detecting collisions, robot manipulator, playing animations, and more are all integral to successful robotics applications. This enables you to develop your next generation robotics application in short time.
AGM has been developed and optimized using C++ for more than a decade. The core of AGM is composed of classes and APIs which together are more than 100,000 lines of code. You can access this core C++ code for further enhancement and customization to suit your application workflow.
The application and the AGM modules are separated and well abstracted. This means that you have flexibility to choose the right GUI framework for your application without being constrained by the existing architecture. AGM includes a sample .NET C# application and you can adopt other GUIs, like MFC and Qt, as well.
Object Lifecycle Management is very important from a robustness and memory consumption point of view. AGM’s Display Object Lifecycle Manager manages the lifecycle of each object that keeps both proprietary data and visual shape associated with it.
Unlike a simple demo application, commercial applications must be designed with many considerations. Synchronization between objects and visualization is one of such important topics. Simple modeling functions, for example create, edit and delete of models. Visualization should be synchronized at the same time. Yet, this is not enough for a commercial 3D application. What if a command is canceled in the middle of the operation? AGM does support synchronization between object and visualization no matter if it’s a modeling operation or not.
AGM has been designed based on deep knowledge and understanding of the characteristics of each software component. This brings customers the advantages of performance, robustness, and productivity for developing 3D application. AGM source code is provided but customers can use high level functionality without knowing detail about each.
A new product needed to go to market quickly to generate revenue, however the company lacked time and resources to develop its own 3D geometry kernel. Virtual Motion integrated the 3D ACIS modeling engine and leveraged AGM and HOOPS to accelerate DAFUL software development.