Signals Blog

The ChemWriter Special Tools Palette: Selectively Hiding Complexity in Chemistry Software

One of the biggest challenges in creating a sophisticated drawing tool like ChemWriter is how to support more advanced use cases while maintaining a streamlined, simplified user interface for everyone else. Over the last several months, we've been doing this through the Special Tools Palette (STP). This short article introduces the STP, explains the functionality it currently contains, and how to activate it.

About the STP

The Special Tools Palette will only appear after one or more of its tools have been activated. This is done by passing the id of the tool into the config object on deployment. The following deployment script will deploy all of the STP's tools available to date:

var editor = chemwriter.loadEditor('my-editor', {
  enableTools: [


Every tool in the STP was created in response to a customer request. When these requests intersect the capabilities of the V2000 molfile spec, the new capability has generally been added. These tools appear in the STP, rather than the main palette because they are either useful to only a small set of customers, or they only apply in some situations.

Why Hide?

There are many situations in which displaying the full range of tools to a chemists would result in outcomes ranging from inconvenience to outright error. Few editors on the market treat this topic with the care it deserves. Regardless, it's essential that ChemWriter not just be an ergonomic tool, but a tool that integrates well with the larger software frameworks it's deployed with.

For example, many structure search system back-ends don't support wildcard atoms or bonds. If ChemWriter were to always display the Wildcard tool, most chemists would assume that wildcard searches were supported - even when they were not. The results would range from confusion/frustration, to outright deception.

Likewise, there are only a limited number of situations in which adding R-groups to a structure makes sense syntactically. One of those situations might be a library enumeration tool. But in a single-substance registration system, the availability of an R-group tool would give those chemists wanting to register libraries the false belief that variables were allowed during registration.

In each case, leaving the decision to show an STP tool puts the developer in control of the user experience.


The Special Tool Palette hosts a growing collection of less frequently-used tools. By segregating these tools and disabling them by default, ChemWriter can both enable and communicate the capabilities of the system it's deployed with.