Encapsule Project History

microchip graphicSee also: screenshotswhitepaperdocument archive

In 2001 I began work in earnest on a collection of ideas related to plug-in frameworks with the initial objective of writing a C++ template library and runtime infrastructure suitable for building easily re-configurable code and document generators. Initially I focused on the design of a generic interface contract for plug-ins and associated runtime infrastructure that I believed would allow plug-ins written by various authors to be trivially instantiated within a software process, discover each other via something resembling reflection, and cooperatively self-assemble themselves to form a software application.

I had some initial success decomposing several fairly simple document generator programs I had written for producing websites and building them back up using my evolving überplug-in architecture. But as I pushed more and more use cases into the framework, the job of authoring the plug-ins became quite onerous. In particular my efforts to extend the framework to allow self-assembling plug-in networks to cooperatively partition their work on to concurrently executing threads proved to be a hopelessly complex undertaking. At one point I spent nearly a week debugging a vexing threading issue and ultimately came to understand that I had created something that was so complicated that I couldn’t even use it myself.

So I scrapped the entire codebase and returned to the drawing board. Reflecting on what I had learned from the überplug-in fandango, I set out to reformulate the architecture of the system to make it as simple as possible to write plug-ins. This necessarily meant that the plug-in host, whatever that was to be, had to somehow shoulder the responsibility of instantiating, connecting, and controlling some arbitrarily complex graph of now dumb plug-ins.

In thinking through what the plug-in host would need to do and the information that it would require in order to accomplish these tasks, I realized that the plug-in graphs I was struggling to comprehend were very similar to digital circuits at a high-level of abstraction. Further, the information required by the plug-in host could be thought of as a circuit schematic of sorts.

All of this was complicated enough so that I had to organize my thoughts clearly before writing any more code and authored the Encapsule Aurora Platform Whitepaper (2003) that served as my guide for re-implementing the entire system a second time. (See also: Encapsule Prototype Screen Shots)

To provide a bit more background context, Encapsule Systems, Inc. was a start-up I founded during this time period that intended to build a software intellectual property (IP) packaging and distribution service based on the Encapsule platform that emulated established hardware markets for integrated circuits and IP.

The plan was to engage 3rd-party domain experts who would leverage our SDK to package and distribute their IP through the company. Customers would pay a fee to leverage tools and the core platform provided by the company to discover and leverage IP building blocks to build custom software applications and services. The company would take a small transaction fee and become profitable as the volume of these transactions scaled.


In 2003-2004 my partners and I were enrolled in the MIT Venture Mentoring Service (VMS) in Cambridge, MA where we spent many hours discussing and refining the company’s business plan. The plan described above (plan A) was the ideal scenario. Plan A required investment capital that we could not raise in 2003-2004 and several years of intense effort to boot the ecosystem.

Working with the VMS, we arrived at plan B: license the core platform technology. Pursuing plan B we approached several firms developing complex software infrastructure seeking to license to core platform technology. Although firms were generally receptive and willing to talk with us, none were willing to commit.

Science and engineering firms told us they were willing to evaluate the beta SDK and platform technology but best case would not be willing to adopt the technology for several years. Firms developing Internet technology urged us release the technology as open source and approach them later about possible consulting opportunities.

By late 2004 my partners and I had exhausted the last of our remaining options and we abandoned the effort, dissolved Encapsule Systems, Inc., and went our separate ways.


Special thanks to my wife for her support, my father David Russell (a brilliant engineer) for financial support and encouragement, Fred Kinch who served as unpaid CEO of Encapsule Systems, Inc. and mentor, Kapriel Karagozyan for your investment and marketing advice, and the MIT Venture Mentoring Service of Cambridge for many volunteer hours spent with the team.


  1. No comments yet.

  1. No trackbacks yet.

You must be logged in to post a comment.