Build, type, run and export polymer systems
This manual walks through every page in CAPS Studio and the pipelines that join them. Each screenshot comes from the current build. Click any screenshot to see it full size.
You can read it in two ways. Pipelines gives the order of pages for a complete job, such as a PCFF polystyrene melt or a graphene–rubber composite. Pages explains each screen one by one.
The window
Every page shares the same frame.
- Left rail. The main stages in working order: Studio, Build, Polymer cell, Force field, Packing, Minimise, Equilibrate, Dynamics, React, Analyze, Export, Jobs and Bench. The gear at the bottom opens Settings.
- Tabs. Each open structure has a tab next to Start. Use + to open another one.
- Command bar. ⌘K finds any page, builder or command by name.
- Machine badge. Top right. It shows where runs happen, for example Local · 10 threads · GPU view.
- Status bar. Along the bottom: atom and bond count, selection, cell lengths, the last action and the mouse controls. Click an atom to pick it, drag to rotate, and ⇧-drag to pan.
Pipeline strip
The strip shows how far the open structure has got. A step turns green when it is done. Click any step to go to its page.
- Structure and Made by name the open structure and the builder that made it, for example Polymer cell, Nanostructure builder or File.
- Force field stays open until a force field is assigned. You can export once it is assigned. Minimise, Equilibrate and Dynamics are optional.
- Export now jumps straight to Export.
- Clear closes every open structure so you can start clean. It asks once more before it does anything. Saved files stay on disk and stay in Recent. Once nothing is open, the strip hides.
Project tree
The Studio's left panel lists every structure in the project.
- Edit reopens the builder that made the structure, with its settings. A molecule reopens with its SMILES. A grown cell reopens in Polymer cell, a filler in Nanostructure, a slab in Surface, and so on. Structures read from a file open in the Studio's editing tools.
- Delete removes the structure from the project. Click it twice to confirm. A saved file on disk is not deleted.
- Copy structure makes a duplicate, so you can try a change and keep the original.
Pipeline 1 · Amorphous polymer cell
This is the standard route: a periodic melt or rubber, ready for a LAMMPS or GROMACS production run. The example is atactic polystyrene with PCFF.
- Build › Polymer. Pick a polymer from the library on the left; the Rubbers filter shows elastomers. Alternatively, type a repeat unit as SMILES with two
*attachment points. Set tacticity, linkage and end groups, then press Send to CAPS Grow. - Polymer cell. Set the number of chains, the degree of polymerisation (DP), the dispersity and the target density; 0.6 g/cm³ grows easily and is compressed later. Under Force field, choose PCFF and leave Assign when growing finishes on. Press Grow cell.
- Force field. Check the typing report. Every atom should be typed, with 0 untyped and 0 missing terms. If anything is missing, the Missing before run panel says which terms and lets you fill them from a published file.
- Minimise. Removes close contacts left by growing. Turn on compression here to bring a low-density cell up to its target density.
- Equilibrate. Pick a published protocol, such as the Larsen et al. 21-step (2011), and set the final T and P. You can add production blocks that run until density, energy and Rg stop drifting.
- Dynamics (optional) for NVT or NPT runs inside CAPS, then Analyze for density, g(r), Tg, moduli and diffusion.
- Export. Write a LAMMPS deck (
lmp -in STEM.in) or GROMACS files (top, itp, gro, mdp). DL_POLY 4 and AMBER/OpenMM (prmtop, inpcrd) are also available. Class II force fields such as PCFF and COMPASS go to LAMMPS only. GROMACS has no class II functional form, and the page says so rather than writing an approximate file.
Pipeline 2 · Filler composite
This route makes graphene, h-BN, a nanotube, a particle or a pore, optionally with functional groups, inside a polymer or rubber matrix. It also answers "how do I graft groups and add the polymer?"
- Build › Nanostructure. Choose the Type (Sheet, Nanotube, Particle or Pore) and the material, for example Carbon (graphene). Then set the size and the number of layers. Periodic in the plane makes an infinite sheet. With it off, you get a flake with H on the edges.
- Functional groups (optional). Type a preset such as
carboxyl, or a SMILES with*at the attachment atom. Choose Where the groups go: on the sidewall, on the ends or on the edges. Give either a share of sites or an exact count, plus a minimum spacing. - Graft on. Choose the filler these settings build or the structure open in the Studio. With the first choice, CAPS builds the filler if needed and then grafts onto it. It reuses the same filler while the settings are unchanged, so you can graft several group types in turn. Undo a graft with ⌘Z.
- Polymer matrix. Switch it on, choose the polymer and its density, and press Build composite. If you haven't built anything yet, CAPS builds the filler (with its grafts) first. The matrix then grows around it. The directions the filler already fills stay periodic, and the rest open up for the chains.
- Force field › By group. A composite usually needs one force field per part, for example a carbon or IFF model for the filler and PCFF, COMPASS or OPLS-AA for the polymer. By group suggests the groups. Assign each one, and CAPS writes the cross terms.
- Carry on as in pipeline 1: Minimise → Equilibrate → Export.
Pipeline 3 · Crosslinking and cure
This route vulcanises a rubber, cures an epoxy, or crosslinks chains through a crosslinker such as ENR with PBS or MAH. It uses your own force field throughout.
- Build the cell as in pipeline 1, or open it from a file. Assign the force field in the Force field step. React types, charges and parameterises the network with it after every cycle and assigns it to the result.
- React › Reaction templates. Pick a preset:
- C–C crosslink;
- sulfur cure;
- peroxide;
- silane;
- epoxy–amine;
- ENR + carboxylic acid: the acid O bonds to the tertiary epoxide carbon and the ring opens to a β-hydroxy ester, with no water;
- ENR + MAH: an OH opens the anhydride to a half-ester acid, which then opens an ENR epoxide (ENR–MAH–ENR, ENR–MAH–PBS);
- esterification: COOH + OH gives an ester and H₂O.
- For a sulfur cure, use Sulfur donors: H–Sₓ–H with x fixed or spread over 1–8, dosed in phr. Each donor that reaches two chains becomes a C–Sₓ–C bridge.
- Network.
- Links only between different chains: the original chains, the ones the run started from. A crosslinker cannot close back onto the chain it is already on, but chains already joined in one network still take further links. A network opened from a file that does not record its chains has them recovered by cutting the bonds the templates form (C–S for a sulfur cure); the report says so.
- A template's "different molecules" rule (
min_path 0) also means the original molecules. Before 7 Oct 2026 it used the molecules as joined so far, so crosslinking stopped once every chain was in one network (about one link per chain, whatever the target). - Stop at: a conversion, a number of links, links per chain, ν (mol/m³), Mc (g/mol) or DC % (2 × links / monomers).
- Byproducts (H₂, H₂O): keep them in the cell or remove them.
- Choose the protocol: Polymatic cycle or REACTER-style during MD. Auto capture widens the capture distance when no pair is found.
- Press Crosslink. The live view shows each chain in its own colour with the new links highlighted. The links plot shows progress against the target, and Network reports target vs achieved, ν, Mc, DC, loops and the force field before and after.
- To run the reaction in LAMMPS, use Write fix bond/react files…. It writes pre/post templates and map files cut from your cell and typed with your force field, a data file holding every type the reaction creates, and an input with the fix. Run
lmp -in react.in.
Pipeline 4 · Rubber on a fibre surface
- Build › Crystal. Pick a crystal (quartz, silica and others), or import a CIF.
- Build › Surface. Choose Miller indices and a termination, then add vacuum. Build the slab, or grow a polymer film on it.
- Force field › By group. Use an inorganic model for the slab (for example IFF or the clay and glass sets) and the polymer's own force field for the film.
- Minimise → Equilibrate. Then use Analyze for the interface density profile, adhesion and pull-out.
Pipeline 5 · Polymer blend
- In Build › Polymer, press Blend… at the top right.
- Add each component with its chain count and DP. The chains grow together in one cell.
- Assign a force field per component if they differ, using By group. Then run Minimise → Equilibrate → Export.
Pipeline 6 · Coarse-grained model of a real polymer
Use this route for long times and large cells for one polymer, then map back to atoms.
- Build › Coarse-grained › From a polymer. Choose the polymer, for example Polystyrene.
- Choose the mapping:
- 1 bead per repeat unit: the unit's centre of mass. This is the common 1:1 model.
- 2 beads per unit: a backbone bead and a side-group bead. This is the Harmandaris et al. PS model, and what moltemplate calls a "2-bead polymer". With two bead types, it is a two-bead heteropolymer.
- n backbone atoms per bead: for example 3:1 for polyethylene.
- CAPS grows an all-atom reference melt, compresses it to the density and maps every frame to beads. From that it derives the bead model:
- harmonic bonds and angles by Boltzmann inversion;
- a repulsive WCA with σ taken from the bead g(r);
- 1-2 and 1-3 pairs excluded.
- Run the CG melt in CAPS or export the LAMMPS deck. The model is repulsive only. It is a starting point for IBI (iterative Boltzmann inversion), which adds the attractions.
- Press Backmap the open melt to go back to atoms when you need atomistic detail.
Pipeline 7 · Existing files in, decks out
- Open: LAMMPS data and dump, GROMACS .gro, PDB, XYZ, mol2 and CIF. AMBER prmtop with inpcrd or rst7 opens with the topology's own force field, term by term. AMBER trajectories (NetCDF, mdcrd) load onto it.
- Type it: Force field page. Typing works from the bonds alone, so PDB with CONECT, mol2, xyz and LAMMPS data all type.
- Write it: Export page. It writes LAMMPS, GROMACS, DL_POLY 4, AMBER/OpenMM and moltemplate (.lt). Each deck is written in the force field's own style.
- Recipes: Start › Import recipe reads a YAML/JSON recipe or a Packmol input. Copy as Python on most pages gives the same step as a script.
Start
- The search box accepts a SMILES, a file path or a page name.
- The six tiles open the main builders: Molecule, Polymer, Crystal, Amorphous cell, Surface or interface, and Solvated system.
- Learn runs guided examples on the sample cell. Fibre–rubber composites covers composite recipes: a rubber film on glass fibre, fillers in rubber, sulfur cure, and adhesion and pull-out.
- Drag and drop a structure file anywhere in the dashed area to open it.
Studio
- Toolbar: select, lasso, move, rotate, draw bonds, cut, add H, rings, element picker, measure, charts, pin, save, layers, links, search, history, visibility, colour and projection. The last button is full-screen view, which has its own Cell and Wrap toggles.
- Right panel: the Atom, Molecule, View and File tabs, plus Validation. All checks… lists every file check.
- Bottom tabs: quick analysis of the shown frame (g(r), Minimisation, Thermo, Molecules, Network, Around atom, Chains).
- View background: follows the Studio theme by default. You can set it to Dark or White in Appearance › Display or Settings › 3D view.
Molecule builder
Use it for monomers, curatives, solvents, plasticisers and small additives. Then send the molecule to Packing to fill a box, or to Polymer as a repeat unit.
Polymer builder
- Repeat units: in SMILES, the first
*is the head and the second is the tail. + Unit adds a second unit for copolymers. - Architecture: Linear, Branched, Star, Comb or Dendrimer. Network → opens network building.
- Sequence: homopolymer, alternating, random, random with exact composition (every chain holds exactly the counts asked, in random order) or block, with the DP and a name.
- Your polymers: Save to your library keeps the polymer on the builder (one repeat unit, or a copolymer with its sequence and shares) in your library, tagged yours, in
~/.caps/polymers.json. The bin beside one removes it; the built-in ones stay.
The Composition panel appears when there are two or more units. Give each unit a Target % by moles or by weight. CAPS converts a weight ratio to mole fractions with the repeat-unit masses, xi = (wi/Mi) / Σj(wj/Mj). The table shows each unit's mole and weight share and its count per chain: the exact count, then the mean ± one standard deviation (√(DP·x(1−x))) when units are drawn at random. Use: random sets the shares to these mole fractions; Use: exact composition also gives every chain the exact counts. For example, PBSA at 80:20 by weight gives BS:BA 0.823:0.177 by moles (BS 172.18, BA 200.23 g/mol).
- Stereo and linkage: atactic, isotactic or syndiotactic; head-to-tail or other linkages; end groups.
- Build in document builds one chain. Send to CAPS Grow takes the polymer to Polymer cell.
Polymer cell (CAPS Grow)
- Components: each polymer with its chains, DP and dispersity Đ. Choose polymer… adds another one.
- Force field: choose it here, and it is assigned when growing finishes. Compare all force fields shows which force fields cover the polymer.
- Cell: size from density or box, shape, tacticity, seed and contact scale.
- The live counters show chains grown, units placed, restarts, closest contact margin, current density and elapsed time.
- Save recipe and Copy as Python repeat the same build later.
Force field
- Choose the force field and the charges, then press Assign · retype all. The chips above the table show typed, untyped, missing terms, estimated terms and net charge.
- Click a row, or an atom in 3D, to see the rule that matched and the other rules it also matched. You can override the type by hand.
- By group assigns a separate force field to each part (filler, polymer, blend component). Type by hand… sets types directly.
- Missing before run: CAPS never guesses a parameter. Fill a gap from a published file, or enter it by hand. Values entered by hand are flagged as estimated in the report and in the output.
Packing and Blend
Use Packing for solvents, gases, curatives and fillers, and when adding small molecules to a grown cell (Pack into › Around the current structure).
Crystal and Surface
Saving a crystal or slab. In the Studio's File buttons, or File › Save as:
- CIF… writes space group P 1, with the cell, the formula and every atom's fractional coordinates. It opens in VESTA, Mercury, pymatgen and ASE.
- VASP POSCAR… writes VASP 5 format: species and counts lines, and Direct coordinates wrapped into the cell. The atoms are grouped by element in the order each first appears, as VASP needs. Held atoms are written as Selective dynamics (F F F). Rename the file
POSCARfor VASP; the POTCAR must list the same species in the same order. CAPS also opens POSCAR and CONTCAR files. - CLI:
caps crystal … -o rutile.cifor-o POSCAR. Python:doc.save("rutile.vasp").
Nanostructure
- Sheet: graphene or h-BN, with width in x and y and a number of layers (AB-stacked, 3.35 Å apart). Periodic in the plane, or a flake with H edges.
- Nanotube: chirality and length. Particle: shape and size; the surface relax is optional and not offered for metals. Pore: a pore with an optional united-atom fluid.
- Functional groups: a preset or SMILES with
*, the placement, share or exact count, spacing, side, and On elements (for example B only on h-BN). Use Graft on to choose the target. - Polymer matrix: grows the chosen polymer around the filler. The button changes to Build composite. The step-by-step order is in Pipeline 2.
Solvation
Coarse-grained
| Model | What a bead is | Use it for |
|---|---|---|
| Kremer–Grest | A generic bead on a FENE spring, with a WCA repulsion. No chemistry. | Polymer physics in general: entanglement and reptation. Map it to a real polymer by σ, T and bead mass. |
| MARTINI | About four heavy atoms per bead, with types from a published table. | Mixtures, membranes and interfaces, where transferable chemistry matters. |
| From a polymer | Your polymer's own beads: one per repeat unit, backbone plus side group, or n backbone atoms. | Long times and large cells for one specific polymer, then backmap to atoms. |
Kremer–Grest settings are chains M, beads per chain N and density ρσ³ (0.85 is the standard melt). The box length follows from them. LAMMPS deck… writes the model directly.
Minimise
The reported |F|max counts free atoms only. Atoms you pinned or held fixed are not included.
Equilibrate
- The Protocol dropdown lists published schemes, such as Larsen et al. 21-step (2011): 21 stages, 1,560 ps. Set T final, T max, P final and a time multiplier.
- Production blocks until converged adds blocks until density, energy and Rg stop drifting, up to the maximum number of blocks.
- Keep the original writes the result to a new structure.
Dynamics
React
The template text shows its rules in full: which atoms react, the capture distance, probability, minimum path, which bonds form, which atoms leave and which leave as a byproduct. The page is shown in Pipeline 3.
Analyze
Other analyses include density, g(r), chain statistics, free volume, interface profiles, moduli from tensile runs (x, y, z or averaged), orientation and scattering. Each one exports CSV.
Export
- LAMMPS: the force field's own styles (or hybrid), electrostatics, cut-off, k-space accuracy and units. The run protocol covers T, P, time step, steps, minimise first and bond constraints.
- Checked before writing: CAPS lists anything that would stop the deck running. For example, if no force field is assigned, it offers Open the Force field step.
- Other exports: Structure file, and Figure / movie.
- Choose the folder and file name, then press Write N files.
Jobs and project
The Project page drafts a Methods paragraph and BibTeX from each structure's provenance: every builder, force field and protocol you used, with its citation.