Thursday, August 31, 2006
Free 3D Engines, 2D Engines, Graphics Libraries / Source Code, Image Drawing
Open Scene Graph
Open Scene Graph (OSG) is a high level 3D graphics toolkit that you can use in development of games, visual simulation, virtual reality, scientific visualizations and modelling. It is an object oriented framework written in standard C++, uses OpenGL, and supports Windows, Mac OS X, Linux, FreeBSD, IRIX and Solaris. OSG is released under a "relaxed version" of the GNU LGPL, allowing its use in both open and closed source projects (see the site for details).
g2 2D Graphics Library
This open source 2D graphics library is written in C and has a C, Fortran and Perl interface. It exposes functions that you can use to generate graphics for Postscript, X11, PNG, and Win32. The library has been tested on Linux, AIX, Digital Unix, SunOS, IRIX, VMS and Windows NT/2000.
GD Library
This is a well-known library for the creation of PNG and JPEG images. It is written in ANSI C, but you can also call the library from Perl, Tcl, Pascal, Haskell, REXX and possibly other languages. It has facilities for you to draw lines and arcs, write text, colour the images, cut and paste images, do flood fills, etc.
Expression 3D Toolkit
Expression is a C++/STL toolkit that supports interactive 3D graphics using OpenGL as well as non-interactive sphere tracing. It runs on Win32 and Linux, supports JPEG and 3DS filters, is MT-safe (thread-safe) (supports both POSIX and Win32 multithreading), handles 3D and homogenous coordinates, 3x3 and 4x4 matrices, quaternion, colour range maps, axis aligned bounding boxes, fogs, procedural textures, fullscreen and windowed modes, polygonal models (tri-mesh), primitive sky, particle systems, etc.
Bolt3D Engine
Bolt3D is a real-time 3D engine for Win32 systems. It supports real-time gouraud, phong, texture-mapping, particle systems (for stuff like smoke and bubbles), bilinear-filtering, surface mapping, artificial spotlights, fog effects, 3D object creation (spheres, cones, sweeps, cubes, hardware acceleration, etc. You can interface the code from Visual C++, Delphi and Visual Basic. The engine is free.
libAfterImage
libAfterImage is an image manipulation library for X Windows that supports loading, storing blending, rendering and manipulation of images. Image formats like XCF, XPM, PPM/PNM, BMP, ICO, JPEG, PNG, GIF, TIFF (full range) can be imported into the library, which also allows you to use TrueType fonts. The library may be used without X Windows, and handles scaling, tinting, flipping, tiling, textuarized, semi-transparent 3D text rendering, etc.
Libart
This 2D graphics library supports numerous data structures (vector paths, Bezier paths, RGB and RGBA images, sorted vector paths, MicroTile arrays, Affine transformations) and algorithms (converting Bezier paths into vector paths, antialiased rendering of SVPs, alpha-compositing, etc).
GraphLib
This C++ class library that can be used to represent graphs. It comes with a few graph algorithms and is extensible. It runs on Windows 9x and Linux.
Interactive Visualisation Framework
Ivf++ is a C++ visualisation framework for 3D rendering that encapsulates OpenGL and GLUT functionality. Its extensible foundation classes can be used either standalone or in conjunction with other GUI libraries such as FLTK, MFC and GTK+. It comes with tutorials and a user's guide. It runs on Windows and X11 (Unix systems) and apparently has been tested on Windows NT/2000, Linux and IRIX.
Graphix
This MSDOS graphics library is designed for the Free Pascal Compiler (which can be found, along with other free Pascal compilers) and Borland Pascal 7.0. It has various capabilities, including the support of various graphics modes from 320x200 to 1600x1200 (and above) using direct-RGB (15, 16, 24 and 32 bit), 8 bit graphics modes, mouse library, image handling library (BMP, GIF, ICO, JPG, PCX, PBM/PGM/PPM, PNG, TGA, etc), font library (FNT bitmapped fonts, CHR-BGI fonts, VGA-BIOS 16x8 font), graphics effects library (alphablending, masking operations, rotating, scaling), triangle-output library (for 3-D, etc), and video and animation library (AVI, FLI/FLC, GIF, Quicktime MOV).
Dislin
This is a plotting library for displaying data as curves, bar graphs, pie charts, 3-D colour graphics, 3-D graphics, elementary images, 3D-colour plots, surfaces, contours and maps. Versions are available for C, Fortran 77 and Fortran 90 compilers on Linux, FreeBSD, OpenVMS, MS-DOS, Windows 95/98/NT, and other flavours of Unix. On some operating systems, Java, Perl, and Python are also supported. (Not all versions of the library are free, though.)
Gx2 Graphical Library
GX2 is a graphical library for Borland Pascal 7 and the Free Pascal Compiler ("soon"). It uses an object oriented interface and supports the loading and saving of BMP, GIF, PNG, JPG and PCX files. It comes with 65 fonts (vector and bitmap) and supports True Type Fonts and the conversion of Borland CHR fonts. Most of the work in image handling (e.g. conversion, opening) is done by the library automatically. Other features supported include antialiasing of fonts, lines and circles, alphablending, alphamapping, transparency (add/sub), rotation, colour dithering, fading, colour printing to Epson and HP compatible printers, etc. The library uses 32 bit DPMI code, optimized to take advantage of the MMX.
PASJPEG
Compress and decompress JPEG files with this library, which is actually a port of the Independent JPEG Group's C sources into Pascal/Delphi. It was written for Turbo Pascal 7.0 and Delphi 2.0 but should work with other Pascal compilers which are compatible with these two.
MESA
A 3D graphics library with an API similar to OpenGL. It implements the OpenGL 1.2 API specification (as of version 3.0), and works on most Unix systems with X11. Drivers are available for Amiga, Windows, Macintosh, MSDOS, NeXT, BeOS, etc. 3D hardware supported include 3dfx Voodoo1, Voodoo2, Voodoo Rush, Voodoo Banshee, Voodoo3, nVidia, Amiga Warp3D, Matrox G200/G400, nVidia RIVA, ATI Rage Pro.
Gizmo3D
This C++ 3D engine is free for non-commercial use. It is available for Win32, Linux and IRIX. It provides for scene management and presentation, 3D graphical nodes, multipass rendering and effects, selection and collision detection, animation control, etc.
LibXMI
You can use this C library for rasterizing 2-D vector graphics primitives such as wide polygonal lines, circular and elliptical arcs and filled polygons. It does not interface with the screen directly, rather, it draws into a user-supplied matrix of pixels. Platforms supported include Linux, FreeBSD and Unix systems. However, the author notes that it should be possible to compile it and install it on any system with a C compiler.
Scitech MGL
SciTech, makers of the well-known Display Doctor, has released its Scitech MGL library under an open source public license. This full-blown graphics library has loads of features to allow you to write 2D/3D graphics programs (such as games, etc). It has a 3D API that can scale from software-only to full 3D hardware geometry acceleration. You use the OpenGL API to write your program, for the Windows and/or MSDOS environment, thus allowing you to maintain one set of sources for programs on these platforms. The library comes with complete source code, and a host of useful supplemental libraries (also with source code). There are too many features to list here. Check out the website yourself. The website boasts that this library was used in the development of games like WinQuake and Hexen II.
ImageMagick
ImageMagick is a well known package of libraries and tools for reading, writing and manipulating many image formats, including GIF, JPEG, PNG, PDF, Photo CD, etc. You can create the image, rotate it, resize it, add special effects, convert between formats, and so on. The library is in C, but there are C++, Perl, Java and Python interfaces as well. The object-oriented C++ interface provides integrated support for STL. Supported platforms include Linux, Windows NT/95, Macintosh, VMS, OS2 and "virtually any Unix".
LibWMF
LibWMF is a library that is able to parse Win16 WMF files and converts them to GIF or fig file formats, or X draw commands for use in an X Windows program. The library is released under the LGPL and should work on Linux.
Paintlib
Paintlib is a C++ class library that allows you to easily decode an image and manipulate it. It supports, with the help of publicly available libraries, the following formats: JPEG, TGA, TIFF, JPEG/JFIF, Windows BMP, Mac PICT, and TIFF previews in EPS files. It can be used on Win32, MSDOS, Linux, etc. There is apparently an ActiveX control as well.
PNG Source Code, Library and Utilities
The Portable Network Graphics format is a lossless compression image format. The site features lots of information about PNG and includes source code and libraries for you to implement PNG in your own program. There are even Java and JavaScript versions, converters, and a whole lot of other utilities and source code.
JPEGFile
A Win32 class library that allows you to read JPEG files into a RGB buffer and saves the buffer as a RGB file or a grey scale JPEG file.
Free Text Search and Replace Software
- ReplaceEm
- ReplaceEm allows you to search and replace text in files using regular expressions. You can specify a filter for the files in a folder that are to be used (eg *.c and *.html for all files ending with .c and .html), as well as apply the search and replace operation only to files that don't match your criteria. It generates a log for the find and replace operation as well as allows you to specify that the altered file is to be placed in a different location. This is a Windows program.
- InfoRapid Search and Replace
- InfoRapid is a Windows utility that allows you to search and replace text within ASCII text files, PDF files (with the help of a third party program), HTML files, RTF files and even Microsoft Office files. It also supports regular expressions for pattern matching. The program cannot be used on a commercially used computer.
- K-free: Free Search and Replace
- This program allows you to find a particular piece of literal text in a set of files and replace it with another piece of text. A backup copy of the changed file is made, as well as a log for the last replacement made. You can specify that the match must be of an entire word, whether the search be case sensitive, and a few other criteria. (It's not regular expression based though, so the criteria you can specify is somewhat limited.) This is a Windows program.
- Search and Replace
- This program allows you to search and replace literal text or blocks of text in files matching a particular filter. It also has the ability to replace text begining with a particular string (say, ) with a different text. It requires you to have installed the Microsoft .NET framework, and thus to be running Windows.
- TextRep
- TextRep is a simple text search and replace utility that allows you to replace a one-lined literal text with another piece of literal text in files that you select using their GUI. It is a Windows program.
- Agent Ransack
- Agent Ransack allows you to search and replace text using regular expressions. This is a Windows program.
- AstroGrep
- AstroGrep is a Windows GUI version of the Unix grep that allows you to search in files using regular expressions. Note that it does not have replace facilities. Unlike grep however, it includes a GUI facility that allows you to print various aspects of your search results. AstroGrep is open source.
- GNU sed
- The venerable sed utility is a command line utility to search and replace text from a set of files using regular expressions. It has been ported to a huge variety of operating systems. The link above points to the source code.
Free Java Compilers
Excelsior JET Personal Edition
The Excelsior JET Personal Edition is a Java to native code compiler for Windows, that compiles your Java applications into native Windows executables and DLLs. It supports all J2SE 1.3.0 to 1.4.1 platform packages, including AWT/Swing, as well as JNI. There is some support for Java dynamic class loading and your applications can use JNI and Invocation API to interoperate with C, C++ and Delphi, or use COM to interoperate with C++, VB6, VBA (and probably any other language that supports the COM interface). This software requires Windows (obviously).
Toba (Java to C Compiler)
Toba translates Java applications to C source files, from which you can compile into native executables (binaries). The program is distributed in source code form, and has been tested on Linux, Irix 6.2 and Solaris 2.5.
Borland JBuilder Foundation (Java Development Environment)
Borland's JBuilder Foundation is available free of charge from Borland's site. JBuilder is a cross-platform Java development environment for Windows, Linux, Solaris and Mac OS. It includes the AppBrowser integrated development environment (IDE), graphical debugging, extensible source code editor, Java compiler, Java visual designers, wizards, and Two-Way Tools with no proprietary markers. Also included is BeanExpress, which allows you to create Java Beans. You can use CodeInsight to "speed up coding and reduce syntax errors". Java 2 SDK 1.3, JFC/Swing, Graphics2D, serialization, JavaBeans, JNI, etc, are all included in the package. You get a non-expiring free licence to use the package to develop personal, non-commercial software.
AlphaWorks ADK for Win 3.1 (Java Compiler)
Developing Java applications on a Windows 3.1? You'll need this Java compiler from IBM which handles the long filenames, threads, etc, required by Java. Note that development on this compiler has long ceased, although the compiler and documentation are still available.
IBM's Jikes Java Compiler
Jikes is IBM's Java compiler that is supposedly faster than most other compilers. It is also able to compute the dependency requirements in programs and so generate makefiles. If you want faster development cycles, you might also fancy its ability to perform incremental compilations. Platforms supported: Windows 95/NT, AIX, OS/2, Linux, Solaris Sparc. The compiler handles constructs exactly according to the Java specifications. Source code is available under an open source licence.
Sun Microsystems' Java Development Kit (JDK) (Java 2 Platform Second Edition, J2SE)
You can get free Java Development Kits for a number of platforms (Windows, Linux, Solaris SPARC, Solaris x86) from the creator of Java. The kits include the Java compiler, Java debugger and Java class libraries for generating Java bytecode. I find this compiler rather slow.
GNU Compiler for the Java Programming Language (GCJ)
This Java compiler is developed independently of the one by Sun. It is able to generate both Java bytecode and native machine code, as well as convert Java bytecode into native machine code (so theoretically you can even use this compiler to convert a Java program compiled by another compiler into a native binary/executable). It comes with its own class libraries. At the time of this writing, the libraries are still under development and the compiler can only handle version 1.0 of the Java language. It uses the same backend as the EGCS compiler (GNU's C compiler). The advantage of this compiler over Sun's is its ability to generate native machine code - so if you are not coding for the web and simply want to use Java as a programming language, this might be a good compiler to check out.
Guavac Java Compiler for RISC OS
This is the Acorn RISC port of Guavac, a Java source compiler. You can get the compiler, class libraries and the FAQ from the site. It is no longer supported and the last update was on 24 September 1999.
Kiev
This compiler is able to generate Java bytecode from extended Java source code with embedded Prolog source code. Extensions to the Java language include a Prolog-like engine, multimethods, parameterized types, closures, multiple inheritance by interfaces and delegation, arithmetic types, type states and cases, overloaded and user-defined operators, foreach statement, switch statements for types, goto, global method and variables, enum, virtual fields, variable number of arguments, packed fields, bit-fields, etc.
Subscribe to:
Posts (Atom)