-- Download GMac as PDF --
GMac, short for “Geometric Macro“, is a .NET based software system that allows implementing geometric models and algorithms based on Geometric Algebra (GA) in arbitrary target programming languages. The core part of GMac is the GMacCompiler, a transcompiler or source-to-source translator that accepts code written in a simple high-level domain-specific language (GMacDSL), and can be configured using classes in the GMacAPI to output very efficient low-level code in any desired target programming language. The ultimate goal behind creating GMac is to allow Geometric Computing (GC) implementations to be as flexible, organized, and efficient as possible. Although GMac is originally created using C#, it can be configured to generate a set of textual code files in any desired structure using the TextComposerLib components accessible through any .NET language including C++, C#, VB.NET, F#, and IronPython among others. For more detailed information you can read the GMac Guides on this site.
GMac comes in 3 editions: GMac Free, GMac Basic, and GMac Complete. The GMac Free edition is free for non-commercial use while the GMac Basic and GMac Complete editions require buying a license to use either of them. All 3 editions are identical except for the following features:
You can download the latest version of GMac Free or a full-featured 21-days trial of GMac Basic and GMac Complete from below. You can also buy a license for extended use of the paid editions as described below.
- Using GMac Free you can define and use 1 or 2 GA frames of any signature up to 4 dimensions. This includes the usual 2D and 3D Euclidean Space, 2D and 3D Homogeneous Space, and 2D Conformal Space. You can use GMacDSL to define any number of GA-based macros on your frames using the rich GMacDSL multivector expressions. You can investigate your GA-model using the GMac Scripting engine and gain access to GMacAST information and Wolfram Mathematica in the background.
- Using GMac Basic, you have access to all features of GMac Free, with a plus of frames having up to 6 dimensions to enable working with popular GA spaces like the 3D Conformal Space and the 6D Conic Space. In addition, you can define and use your own combination of multivectors and scalars inside structures that can be nested up to any level. You also have access to the powerful GMacAPI and TextComposerLib for GA-based code generation for any target programming language.
- The most powerful edition is GMac Complete where the maximum capabilities of GMac are available to the user including the unlimited number of GA frames having up to 15 dimensions, and the ability to define constants, macros, and structures inside namespaces.
Buy A GMac License:
You can download a full-featured 21-days trial version of GMac as described below. If you like, you can buy a license to use GMac for a specific time (6, 12, or 24 months), or buy a license to use GMac for unlimited time. The license is tied to a single computer and depends on the Hardware Signature ID of the computer. To Buy a license of your choice please follow these simple steps:
- Download the 21-days trial version from below. Select the GMac Basic or GMac Complete version as you see fit for your needs.
- Download the Hardware ID Signature Generation tool (HID.exe) from here.
- Run the HID.exe tool to read and generate the hardware ID of your computer.
- Go to the GMac Basic license page, or the GMac Complete license page to buy a license of your choice (a 6, 12, 24 months license or unlimited license).
- On checkout, you will be asked to enter the hardware ID.
- After completing the payment successfully, you will receive an e-mail within 24 hours containing the license file that you can put with your copy of GMac.exe file to fully activate it.
Coding with Geometric Algebra:
- A simple yet powerful computational Domain Specific Language, GMacDSL, that exposes the power of Geometric Algebra to geometric computing software applications.
- GMac Basic can define Euclidean frames of up to 6 dimensions along with arbitrary subspaces, while GMac Complete can define frames up to 15 dimensions of any signature.
- Through GMacDSL, the user can define combinatorial nested structures containing multivectors and scalar values to hold basic geometric computing blocks of data.
- GMacDSL provides a rich set of multivector operators to construct sophisticated computational symbolic expressions.
- GMacDSL gives the user the ability to define Geometric Macros, a simple form of parameterized geometric computing procedures based on Geometric Algebra multivector expressions. Geometric macros can call each other to provide simple encapsulation and code reuse capabilities.
- The GMacDSL user code is automatically parsed to an Abstract Syntax Tree; stored in the GMacAST component classes. The GMacAST structure is specifically designed to be effective when used for later scripting and code generation tasks by including comprehensive information about the semantics and relations of the code elements defined in the GMacDSL code.
Scripting and Prototyping:
- The GMac Scripting language is a syntactically simplified version of the powerful C# 4.0 language that can integrate C#, GMacDSL, and the Mathematica Language into a single scripting framework with limitless potential for geometric computing applications.
- The GMac Scripting engine can communicate with Mathematica to perform symbolic, as well as numeric, manipulations and read the results as symbolic expressions, text, or images through the powerful capabilities of the Mathematica computer algebra system.
- The GMac Scripting engine can access GMacAST structures to perform multivector manipulations and explore the underlying GMacDSL code effectively. This provides a valuable tool set for geometric computing application prototyping using Geometric Algebra at the core.
- The GMac Scripting engine glues everything together through C#, a powerful object-oriented general-purpose strongly-typed programming language. C# capabilities, like Linq, Regular Expressions, .NET Framework Access, etc. can be used at various levels of complexity to perform simple-to-sophisticated prototyping tasks including the integration and coordination of GMacDSL code and Mathematica symbolic and numeric manipulations.
Included Software Components:
- GMac includes the powerful text composition library TextComposerLib with all its capabilities intended for structured text generation including, but not limited to, code generation for any desired application.
- GMac also includes a simple wrapper, called SymbolicInterface, around Wolfram Mathematica .NET/Link interface. The SymbolicInterface component classes can be used to interface any desired .NET application with Wolfram Mathematica (as a backend symbolic processor) with ease through a fully managed object oriented interface.
- The GMacAPI component classes are designed for software engineers to be effective at creating full software libraries for geometric computing applications based on Geometric Algebra models.
- Comprehensive online user guides providing many examples and explanations.
- Freely downloadable GMac samples providing more GMac use cases that will be updated regularly (coming soon).
- The GAComputing blog contains ideas and investigations that use GMac to explore Geometric Algebra constructions and applications.
- GMac comes in one free version: GMac Free, and two paid versions: GMac Basic and GMac Complete.
- All 3 versions are identical except for the features described at the top of this page. The user can select the version that is most suitable for his needs.
- For each version, the user can select to buy a license to use GMac for 6, 12, or 24 months, or buy a full license to use GMac indefinitely on a single computer.
To use GMac you need to have a Windows 7 or later operating system and the .NET Framework version 4.0. GMac depends on Wolfram Mathematica for its symbolic computations so you also need to install Mathematica version 7 or later. To take advantage of GMacAPI and its code generation capabilities you need to use GMac as a .NET components library so you need a .NET development environment like Visual Studio 2010 or later to use GMac in your .NET projects. For more information about installing GMac, you can read the GMac System Guide. For detailed information about all aspects of GMac, you can read the online GMac Guides.
You can download the latest version of GMac Free from here:
You can download a full-featured 21-days trial of the latest GMac Basic version from here:
You can download a full-featured 21-days trial of the latest GMac Complete version from here: