- 3DLDF is a GNU package for three-dimensional drawing with MetaPost output. It is written in C++ using CWEB. It is intended, among other things, to provide a convenient way of including 3D graphics in TeX documents. This package includes an interactive program called `3dldf', which implements a language intended to resemble Donald Knuth's METAFONT language and John Hobby's MetaPost language, which is based on METAFONT.
- ADG: Automatic Drawing Generation
- The ADG library (Automatic Drawing Generation) is a set of functions focused on automating the drawing of mechanical parts. It is not a CAD system but a library providing a non-interactive canvas where you can put common CAD entities such as paths, xatches and quotes, to create your technical drawings. The final result can be displayed inside a GTK+ widget or exported to any cairo available format, such as PostScript and PDF documents or PNG and SVG images.
- 'Aalib' is a low level gfx library that works on any kind of terminal. It does not require graphics devices (in fact, no graphical output is possible), and is particularly useful for those with older hardware who do not want to worry about overloading their systems with graphical applications.
- A combination of Portal and Sokoban, AdaGate is a great example of OpenGL programming using the Ada language. It is F.O.S., of course.
While exploring a remote south-seas island you make a startling historical discovery. But before you can report your findings, an operational stargate transports you into a curious sequence of dungeons. Your escape will require the logical rearrangement of weird power cells, called Zero Point Modules (ZPMs), that can roll in only two directions.
You can shoot your portal guns at the dungeon walls to define a wormhole. But, in order to activate it, all of the ZPMs must be bumped into their sockets. Now, you can only PUSH the ZPMs. That means you will fail if you roll one into a corner or against a wall.
Escape each level and find your way back to a beautiful lake on the surface.
The degree of difficulty is now selectable. Each game resumes at the beach but progress from previous games is tracked. Complete all 4 levels to access the lake epilog and reset the game.
Uses fully modern OpenGL methods in Ada using textures, shaders and uniforms that achieves version 3.3 core profile contexts in a way that is sufficiently mainstream that it easily compiles and runs on both GNU/Linux and Mac OS-X systems. This project serves as a testbed for learning the complexities of modern OpenGL and GLSL.
Absolutely no coding efforts or compromises have been made to accomodate proprietary operating systems except for learning how to compile on OS-X. It relies on a thin SDL2 binding from Dan Vazquez, a thin OpenGL binding from "Lumen", a PNG reader by Stephen Sanguine, and SFML-Audio.
If one defines "modern" OpenGL to mean version 3.3 or beyond, then this may be the most functionally advanced demonstration of "modern" OpenGL using Ada to be found. The code itself is far from elegant, but serves as a working example, with focus on learning OpenGL. The Ada bindings used are thin, so the relationship to C++ methodology is quite transparent. Developers should note that these Ada bindings are usable as a standalone library for most any OpenGL project.
Media Files Note: The particular choices of sound, image, and shader files (*.fs) delivered are not essential to the function of the game and are easily replaced. This software is primarily intended as a tutorial example of modern OpenGL game assembly methods. The only requirements are that sounds be in WAV format, images be in PNG format, and shaders be updated to GLSL 330 specifications.
- 'Aewan' lets users create and edit ASCII art. Users move the cursor around with the arrow keys, "paint" characters by pressing the corresponding key, and choose foreground and background colors, and bold and blink attributes, with dialog boxes. They can also select, move, copy, and paste rectangular areas of the canvas. Aewan supports "intelligent" horizontal and vertical flipping (e.g., it converts "\" to "/", etc) and can work with multiple layers, turn transparency and visibility on and off for each layer, and change the order of the layers. Thus, each layer can be edited independently to generate a composite drawing. Layers can also be used as frames for an animation, thereby creating ASCII animations.
- AlgART are free software Java libraries, supporting generalized smart arrays and matrices with elements of any types (1 bit, 8/16/32/64-bit integers, 32/64-bit floating point values and any other Java types), including a wide set of of 2D-, 3D- and multidimensional image processing and other algorithms, working with arrays and matrices.
- The libraries use 63-bit addressing of array elements (all indexes and length are represented by 64-bit long type). So, it's theoretically possible to create and process arrays and matrices containing up to 2^63-1 (~10^19) elements of any primitive or non-primitive types, if OS and hardware can provide necessary amount of memory or disk space.
- Memory model concept allows storing AlgART arrays in different schemes, from simple Java arrays to mapped disk files; all necessary data transfers are performed automatically while every access to an element or a block of elements.
- Most of algorithms are based on wide usage of lazy evaluations. Typical operations, like elementwise summing or geometrical matrix transformations, are implemented via lazy views of the source array or matrix.
- For example, you can take a multidimensional matrix, rotate it (or perform any other affine or projective transform), and then extract a submatrix from the result. All these operations will be performed virtually (not requiring time), and actual calculations will be performed only at the moment of accessing elements, usually while copying the resulting matrix to a newly created one. Moreover, in many cases the libraries will "understand" itself, that the user wants to perform rotation or another transform, and will split the matrix into suitable rectangular blocks (fitting in RAM) and choose the best algorithm for this task at the moment of copying operation.
- The libraries contain a wide set of image processing algorithms over matrices: linear filtering, mathematical morphology, rank operations, spectral transformation (FFT), etc.
- There is also skeletonization and measuring of binary images.
- Aqsis is a Renderman(tm) compliant 3D rendering toolkit. It is based on the Reyes rendering approach. Features include programmable shading, true displacements, NURBS, CSG, Motion Blur, and direct rendering of subdivision surfaces.
- Arkanoid Clone
- It is a game programmed in python with pygame library. It is similar to the original game, but with some modifications. It has 18 levels and a fairly lively soundtrack. Have fun playing it.
- Art of Illusion can be used as a 3D Modeller and can be used to create movies. It can currently import and export Alias .obj files and export VRML97 files (without animation). To create movies, Art of Illusion has a offline renderer and set of tools to create animations. Highlights include subdivision surface based modelling tools, skeleton based animation, and a graphical language for designing procedural textures and materials.
- Aseprite is a pixel art editor. It was specifically designed for that task.