Download Diamond-related Software

Diamond Home

Diamond-related software comes in two parts:
All software below is experimental in nature, and is provided "as is" with no warranties of any kind. See the Eclipse Public License for full text of disclaimers and caveats.
For bug reports, bug fixes, and other code-related issues, please create an issue in the GitHub repository for the affected component.

Last updated: 2014-11-20

Software Component

Release notes

OpenDiamond 8 Platform (version 8.0.8)

OpenDiamond Java client (version 8.0.1)

OpenDiamond 8.0.8: fix build on newer systems. (2014-03-04)

OpenDiamond 8.0.7: fix MITM compromise of GigaPan dataretriever, update dataretriever for GigaPan metadata change. (2013-03-29)

OpenDiamond 8.0.6: fix incorrect result cache entries if a filter fails to read an object attribute, JSON Blaster JavaScript improvements, miscellaneous fixes. (2012-11-14)

OpenDiamond 8.0.5: fix JSON Blaster memory leaks, properly time out JSON Blaster connections, create distinct result cache entries for differently-named filters, remember omit attributes when result is loaded from attribute cache, update dataretriever for GigaPan metadata change, miscellaneous fixes. (2012-09-04)

OpenDiamond 8.0.4: use result and attribute caches during reexecution. (2012-06-25)

OpenDiamond 8.0.3: add <argument> "label" attribute to predicate schema, add blaster support to scope server, blaster pause/resume fixes, support multiple blasters in Autopause library, protocol documentation fixes. (2012-06-22)

OpenDiamond 8.0.2: add JSON Blaster JavaScript libraries, JSON Blaster cross-domain improvements, fix attribute cache corruption if an object attribute is overwritten, add heat map object attributes, document Diamond protocol. (2012-06-14)

OpenDiamond 8.0.1: fixes for RHEL 6. (2012-06-01)

OpenDiamond 8.0.0: add JSON Blaster component enabling Diamond searches from web applications, protocol cleanups, result and attribute cache performance improvements. (2012-05-31)

OpenDiamond 7.0.4: update scope server for GigaPan changes, time out server connections to dead clients, eliminate nested build system for Python code. (2012-01-25)

OpenDiamond 7.0.3: fix crashes if a cgroup can't be removed, fix for Python 2.7.1. (2011-10-28)

OpenDiamond 7.0.2: fix excessive use of bandwidth and client memory during searches. (2011-09-21)

OpenDiamond 7.0.1: support loading object attributes from a dataretriever URL, improve egg loading API for Python filters. (2011-08-10)

OpenDiamond 7.0.0: support generic search predicate and codec bundles, add scopeserver core and gigapan modules, scopeserver cleanups. (2011-08-09)

OpenDiamond 6.2.0: eliminate most round trips during search initiation, allow searches to specify maximum filter scores, allow client to provide object data for filter execution, automatically remove stale items from filter cache, add GigaPan dataretriever module, allow dataretriever to be configured via config file, use TCP Wrappers to filter incoming diamondd and dataretriever connections, improve logging. (2011-07-18)

OpenDiamond 6.1.0: drop old server implementation, support floating-point filter scores in libdiamondfilter. (2011-06-23)

OpenDiamond 6.0.5: fixes and logging improvements. (2011-06-22)

OpenDiamond 6.0.4: add filter scores to object attributes, scope server and dataretriever fixes. (2011-06-09)

OpenDiamond 6.0.3: support HTTP proxies, reuse HTTP connections to dataretriever, fixes, robustness improvements, and cleanups. (2011-06-07)

OpenDiamond 6.0.2: fixes and logging improvements. (2011-05-31)

OpenDiamond 6.0.1: reimplement server in Python. The new server features a worker thread model to fully utilize multiple CPU cores, a Redis-based cache implementation for improved performance, reduced internal complexity, and improved debuggability. (2011-05-26)

OpenDiamond 5.4.2: bugfixes. (2011-04-21)

OpenDiamond 5.4.1: support Python filters, fixes. (2011-03-31)

OpenDiamond 5.3.1: fix server cache corruption. (2011-01-03)

OpenDiamond 5.3.0: drop external miniRPC dependency, remove unused code. (2010-09-08)

OpenDiamond 5.2.1: drop libopendiamond. (2010-08-31)

OpenDiamond 5.1.2: fixes for Fedora 13. (2010-05-13)

OpenDiamond 5.1.1: more robust filter execution. (2010-03-16)

OpenDiamond 5.0.7: bugfix with filter reexecution. (2009-11-09)

OpenDiamond 5.0.6: bugfixes and optimizations. (2009-10-08)

OpenDiamond 5.0.5: bugfixes and optimizations. (2009-09-23)

OpenDiamond 5.0.4: new major release, including flexible access to local and remote data sources (scope server and data retriever). (2009-07-16)

OpenDiamond 4.1.4: fix critical server bug with filter reexecution. (2009-05-21)

OpenDiamond 4.1.3: many bugfixes. (2009-05-07)

OpenDiamond 4.1.0: support for thumbnail (push) attributes and filter reexecution. (2009-01-29)

OpenDiamond 4.0.4: use of lazy dlopen().

OpenDiamond 4.0.3: various bugfixes.

OpenDiamond 4.0.2: bugfixes related to connection reference counting.

OpenDiamond 4.0.1: bugfixes related to attributes and objects.

OpenDiamond 4.0.0: do not relink binaries at runtime anymore, fix crashes when session variables are used under high latency, update to new sqlite3, introduce miniRPC as transport for RPC mechanism and Blast Channel, hide visibility of most non-public symbols, significantly clean up header files, switch adiskd from rings to GAsyncQueue, introduce preliminary IPv6 work, simplify dctl, lazily initialize filters, other bugfixes and code removal.

OpenDiamond 3.3.0: remove unused code, use the SQLite amalgamation, automatically create .diamond when needed, improve object and attribute caches.

OpenDiamond 3.2.2: fix object cache bugs, fix compilation with newer GCC and libc, and relax automake requirements.

OpenDiamond 3.2.1: fix compilation issues, optimize use of new attribute cache.

OpenDiamond 3.2.0: significant cleanup and bugfixes, new cache infrastructure.

OpenDiamond 3.1.1: bugfixes.

OpenDiamond 3.1.0: new volcano tool, new support for scoping, bugfixes.

OpenDiamond 3.0.2: bugfixes.

OpenDiamond 3.0.1: new RPC layer, session variables support, better log support, new instrumentation, many bugfixes.

OpenDiamond 2.1.0: bugfixes, new build system, and DIAMOND_PORT_BASE environment variable for setting listening port.

OpenDiamond 2.0.1: bugfix release.

OpenDiamond 2.0:
New background/anticipatory search system, optionally invoked with the "-b" option to adiskd.

A preliminary Kerberos-based authentication mechanism, optionally invoked with the "-a" option to adiskd. When authentication is enabled, adiskd will refuse connections to clients that cannot get a "diamond" service ticket for the machine that adiskd is running on. A future version of the OpenDiamond Platform will support SASL-based authentication.

Filter omission support: filters can mark attributes as "omitted". Omitted attributes are never transferred across a network link, but are still available between filters executing on a single machine. With this support, attributes representing intermediate stages of computation do not need to waste network bandwidth.

Diamond Core Filters 2.0.6

Diamond Core Filters provides a collection of filters that can be used by Diamond applications. These filters provide image decoding; thumbnail generation; color, texture, and face detection; text search via W-Shingling; and comparisons of numeric and text attributes produced by other filters.

To build Diamond Core Filters you must compile and install OpenCV with the static library option.

HyperFind 1.7.7

HyperFind enables users to quickly search through collections of unlabeled photographs (such as holiday photos). The current implementation of HyperFind supports user-defined color and visual texture filters that scan regions in every image. The user can create and refine these filters using image patches. HyperFind also supports popular shape-based filters such as face detectors.

FatFind 2.0.5

FatFind Runner 1.1.3

The task of manually counting adipocytes (fat cells) in cell microscopy images and characterizing their size is very time consuming. FatFind exploits the almost perfectly circular shape of adipocytes in solution to efficiently locate fat cells.

MATLABFind 3.0.0

MATLABFind lets you use MATLAB code as a Diamond search predicate. You need MATLAB running at each backend server (where diamondd runs).

ImageJFind 3.0.1


ImageJFind lets you use ImageJ macros as Diamond search predicates. ImageJ is public domain software maintained by the NIH.

GigaPan Plugin 1.0.2


GigaPan Plugin is a HyperFind plugin that provides additional features for searching GigaPan images. Users can discover where individual search results appear within the context of an entire GigaPan, or can drill down from a high-level view of a GigaPan to see individual search results.

StrangeFind 0.8.21


StrangeFind is a program that lets you perform anomaly detection on various types of data. This preview release works, but may have incomplete or missing functionality.

PathFind 2.2.1


PathFind is a program that lets pathologists search through virtual slides. This preview release works, but may have incomplete or missing functionality.
OpenDiamond is a registered trademark of Carnegie Mellon University