
Motivation


Accuracy 2 is a modeling language with a syntax closely related to C++.
It ships with sample programs (models) for you to work with, include in your own models, or manipulate directly.
My intention is to preserve certain algorithms in a way which allows the end user to understand them and port them over to their own project's platform quickly.
For example, if you want to make a good labyrinth generator, you can base it on the labyrinth program (model) which is included.
Also notable is a model which takes a list of planes as input and outputs a regular brush, like seen in Quake-style graphic engines.
Models can have customized data included, to be used by third-party applications.
In every release, there is also "Animator" included, a tool for displaying animations created in Accuracy 2 with its animation protocol. The bundled Animator is a sample for how custom model data can be used, it's a stand-alone program which can be given orders by means of custom model data.
Models can have customized data included, to be used by third-party applications.
In every release, there is also "Animator" included, a tool for displaying animations created in Accuracy 2 with its animation protocol. The bundled Animator is a sample for how custom model data can be used, it's a stand-alone program which can be given orders by means of custom model data.

How much does it cost?


As long as you're not using it for commercial purposes (while at work, or using it for making money, etc.), you can use the system at no charge, with all features and no limitations.
If you have a commercial interest in this, you should contact me about it.
If you have a commercial interest in this, you should contact me about it.

What OS do I need to run this?


You need Windows XP Service Pack 2 or Windows Vista (should work on both x86 and x64), and the "Microsoft Visual C++ 2008 Redistributable Package (x86)" (link in readme) to run this program.

Where can I find updates?


I release new versions here, and quote listed changes from the readme.
If you want to support this project and mirror Accuracy 2 and/or advertise for it a bit, you're welcome! A script submission is also welcome. :)
If you want to support this project and mirror Accuracy 2 and/or advertise for it a bit, you're welcome! A script submission is also welcome. :)

Some features


- functions and operators like in C++
- if/else, loop (count), standard loops (for, while, do-while)
- data types: int, float, vec3 (3D vector), block, array<one of the other types>
- blocks contain actual model data, you can use it like other ordinary data!
- custom data items in models, can be interpreted by an application that loads the model
- global and local vars, the ability to use them as reference parameters
- dependency system for managing includes easily
- UI designed for rapid development: change something in your script, tab back and see changes instantly
- growing standard library (in source) for speeding up the workflow
- wrappings for the standard OpenGL things: points, lines, triangles, etc.
- intelligent resource management: the vm mostly works with references
- a fresh-looking minimalistic front end with an all-new 3D menu system
- implicit casting of floats/ints to vec3 and vice-versa, removing the necessity to overload functions like that and promote usage of 3D vectors
- usable binary output
- reference docs and grammar specification included
- intelligent implicit casting of 3D vectors to promote their usage and make extra overloads for them unnecessary
- shipped scripts provide sample implementations for interesting effects such as labyrinth generation
- because this is a programming language, you can easily implement model placeholders and debug versions of your model
- very easy-to-use function pointers
- C++-style namespaces, and a method of renaming a namespace
- serialization of displayed models for loading in other programs
- "auto" variable type mechanism like in C++0x
- typedef mechanism



![[Image]](brushes_t.jpg)
![[Image]](funcpointers_t.jpg)
![[Image]](hexlabyrinth_t.jpg)
![[Image]](marchingcubes_t.jpg)
![[Image]](rectlabyrinth_t.jpg)
![[Image]](roads_t.jpg)
![[Image]](sort_t.jpg)
![[Image]](terrainnormals_t.jpg)
![[Image]](spheres_t.jpg)
![[Image]](likeknex_t.jpg)
![[Image]](bulletbox_t.jpg)
![[Image]](columncross_t.jpg)
![[Image]](ubertree_t.jpg)
![[Image]](wirespheres_t.jpg)