GNU TeXmacs is a free wysiwyw (what you see is what you want) editing platform with special features for scientists. The software aims to provide a unified and user friendly framework for editing structured documents with different types of content: text, mathematics, graphics, interactive content. TeXmacs can also be used as an interface to many external systems for computer algebra, numerical analysis, and statistics. New presentation styles can be written by the user and new features can be added to the editor using Scheme.
Asymptote is a powerful descriptive 2D and 3D vector graphics language for technical drawing, inspired by MetaPost but with an improved C++-like syntax. It provides for figures the same high-quality level of typesetting that LaTeX does for scientific text. Asymptote is a programming language as opposed to just a graphics program. It can exploit the best features of script (command-driven) and graphical user interface (GUI) methods. High-level graphics commands are implemented in the language itself, allowing them to be easily tailored to specific applications.
JGraph is a free, mature, and robust Java diagramming library. It contains all the graph visualization, layout, and interaction functionality you might expect in a graph library, including multiple views, layering, zoom, drag and drop, undo, automatic expanding and collapsing, routing, and layouts. You can create workflow editors, BPMN, CAD tools, network diagrams, database visualization tools, and more. It is fully documented, including examples, and has an active support community.
VisIt is an interactive parallel visualization and graphical analysis tool for viewing scientific data. Users can quickly generate visualizations from their data, animate them through time, manipulate them, and save the resulting images for presentations. VisIt contains a rich set of visualization features so that you can view your data in a variety of ways. It can be used to visualize scalar and vector fields defined on two- and three-dimensional (2D and 3D) structured and unstructured meshes. It was designed to interactively handle very large data set sizes in the terascale range, and works well down to small data sets in the kilobyte range.
Veusz is a scientific plotting package, designed to create publication-ready Postscript, PDF, or SVG output. It features an easy to use graphical interface as well as a command line interface and can be scripted or embedded in Python scripts. Graphs are constructed in a modular fashion from separate components. Datasets can be interactively modified or created from within the program.
QCad is a powerful but easy to use 2D CAD program for Linux, Windows, and Mac OS X. It uses DXF as its standard file format. While other CAD packages are often rather complicated to use, QCad tries to stay comfortable, and even an absolute beginner can create professional drawings with a minimum of effort.
OpenVRML is a VRML and X3D browser plug-in and C++ toolkit for incorporating VRML/X3D support into applications. It provides VRML97 and Classic VRML X3D parsers, a runtime, and an OpenGL renderer as C++ libraries. The renderer is fully separate from the runtime library so that users can also provide their own renderer. The OpenVRML browser is provided as a D-Bus service, and is embeddable in host applications using XEmbed. The distribution provides both a stand-alone host and a host that runs as a Mozilla plug-in.
Scilab is a numerical computation system similiar to Matlab or Simulink. Scilab includes hundreds of mathematical functions, and programs from various languages (such as C or Fortran) can be added interactively. It has sophisticated data structures (including lists, polynomials, rational functions, and linear systems), an interpreter, and a high-level programming language. Scilab has been designed to be an open system where the user can define new data types and operations on these data types by using overloading. A number of toolboxes are available with the system.
Fityk is nonlinear curve-fitting and data analysis software. It allows data visualization, separation of overlapping peaks, and least squares fitting using standard Levenberg-Marquardt algorithm, a genetic algorithm, or Nelder-Mead simplex method. It knows about many functions (mostly bell-shaped, like Gaussian, Loretzian, Pearson 7, Voigt, Pseudo-Voigt, and Doniach-Sunjic) and user-defined functions can be easily added. It also enables background subtracting, data calibration, and task automation with a simple script language. It is mainly used to analyze powder diffraction patterns, chromatography, photoluminescence, infrared, and Raman spectroscopy, but it can be used to fit analytical functions to any kind of data.