Turn the model to the pose you want it displayed in —
whatever ends up down on your screen becomes down on the desk.
Lock the view when it looks right.
Roll0°
Spins the view in place — the one
turn the orbit cannot do. Note that while it is off zero, dragging to
orbit follows the rolled picture, so it is easiest to aim first and roll
last.
Enter a PDB ID or pick an example, then press Generate to build a printable model.
No model built yet.
Privacy, licence and terms
Short version: no accounts, no cookies, no tracking, and
nothing you upload is kept.
What this site stores
There is no account system, no advertising and no analytics of any kind.
The site sets no cookies. HTTP access logging is switched off, so
visitor IP addresses are not written to disk; error messages are logged, and
those record what went wrong rather than who asked.
Structures you upload are written to a temporary folder, used for
that one build, and deleted as soon as it finishes. They are never added to
the shared cache and never leave the server.
Finished files are served from an unguessable one-time address.
Files from a build that was not cached are deleted two hours after it
finishes, so download them in the same sitting.
The build cache keeps finished geometry for structures fetched
from the public PDB, keyed by the settings that produced it, and reuses it
for anyone who asks for the same thing. It holds no personal data.
Your browser stores one value, remembering that you dismissed the
welcome dialog. It stays on your device and is never sent anywhere. Clearing
site data removes it.
Who else is involved
Nobody, while you are using the site. Everything the page needs —
including the 3D viewer — is served from this server, so opening
pdb2print contacts no third party and no content delivery network.
When you enter a PDB ID, this server fetches the entry from the RCSB
PDB; your browser never talks to them, so they see the server rather than you.
The links to RCSB, GitHub and Ko-fi are ordinary links: those sites only learn
anything about you if you click one, and their own policies apply once you do.
The site runs on a single virtual server rented from
Contabo GmbH, Welfenstraße 22, 81541 Munich, Germany, in a
German data centre. Contabo operates the machine on my behalf as a processor
under Art. 28 GDPR and has no other role: it does not read the traffic
and is not given anything about you beyond what running a server involves.
Your rights
The GDPR gives you the right to access, correct, erase and port your
personal data, and to complain to a supervisory authority. In practice there
is nothing here to act on: no account, no profile, no stored addresses. If you
think otherwise, open an issue on
GitHub
and I will look into it.
This tool is provided as is, with no warranty of any kind. What it
builds is a mesh, not a measurement: check anything that matters before you
print it, and use it at your own risk.
No liability for damage, wasted filament, failed prints or lost
data arising from its use, to the extent the law allows.
No support is owed. I am under no obligation to fix bugs, answer
questions or keep the site running. That said, bug reports and feature
requests are genuinely welcome — open an issue on
GitHub.
The public server is a small machine offered as a courtesy. It may be
slow, rate-limited or switched off. If you depend on it, run your own copy
— that is what the licence is for.
Credit where it is due
Structure data comes from the RCSB PDB
and is used under their terms. If you publish a photograph of a print, cite
the entry it came from and the people who solved it.
The plaque typefaces are subsets of DejaVu Sans and DejaVu
Serif, used under the DejaVu/Bitstream Vera licence. The full notice ships
with the source.
The pdb2print wordmark is set in IBM Plex Sans by IBM, used
under the SIL Open Font License 1.1
and shipped as outlines rather than as a font file.
Like it? Support the project
— it pays for the server. Everything stays free either way.
Guide
Type a PDB ID, press Generate, download the 3MF and open it in
your slicer. Everything else here is optional.
The page at a glance
Load a structure: type a PDB ID, upload a file, or pick an example.
Style: how protein, DNA and ligands are drawn.
Printability: how big it comes out, and whether it comes apart.
Generate builds the model. The line under it sums up your settings.
Download the 3MF, one coloured object per chain, or a zip of STLs.
Copy a link that reopens this build with the same settings.
Display stand: a plate, columns and an engraved plaque for the model.
Chains & joints: leave chains out, or change single joints.
Colour key: each chain's colour, name and chain letter.
Build report: what was made, and any warnings.
Light or dark theme, this guide, and privacy and licence.
Settings with an i have a short explanation. Hover
over it, or tap it on a phone. Where the guide says more, click the
i (or tap it again) to jump here.
1 Load a structure
Type a PDB ID and press Enter or Generate. The usual 4-character codes
(1UBQ) work, and so do the newer 12-character ones
(pdb_00001ubq). You find IDs on
rcsb.org.
You can also upload a .pdb, .cif, .mmcif
or .bcif file; it is deleted once the build is done.
The examples load with one click: 1UBQ a small protein,
1BNA a stretch of DNA, 1ZAA and 1TUP proteins on DNA,
2HHB haemoglobin with its four haems, 1AOI a nucleosome.
2 Pick a style
Protein.Surface is a solid skin: sturdy, and prints
without supports. Use it unless you have a reason not to. Cartoon
(ribbons) and Tubes (the backbone) show the fold, but they are thin:
plan on supports, ideally a resin printer.
Advanced settings hold the finer sizes. The number says how many.
The defaults are fine to start with.
DNA / RNA.Surface again, or Tube-slab: the strands
as tubes, the bases as rungs between them.
Tube-slab parts. The backbone as a smooth tube or as balls and
sticks; the bases as plates, rods, or balls and sticks. Rods are the
sturdiest.
Cartoon has one more choice, Hydrogen bonds: a rung across each
hydrogen bond in the backbone: for the helices, the sheets, both, or every bond. It makes the
print stiffer, and the build takes about twice as long.
3 Size and assembly
Scale is millimetres of print per ångström of structure. After a
build the real dimensions appear here.
Advanced settings:Grid spacing sets the mesh detail;
Min wall is the thinnest part it will build.
Takes apart keeps each chain its own object, so you can print
them in different colours. One piece joins them in plastic.
Magnets cut a pocket on both sides of every joint.
Magnet size: set Ø and thickness to the magnets you have.
Magnets per interface: how many go into each joint.
Flush socket gives both parts a flat collar where they meet.
Connect DNA base pairs joins the two strands, so the helix holds
together instead of printing as two loose spirals.
One piece has three ways to join the chains: Inflate grows
them until the gaps close; Bridges puts a rod of the size you choose
across each gap; Overlap leaves everything exactly where the structure
has it, so only chains that already overlap end up fused.
Grid spacing and Scale work against each other: what counts is one divided
by the other. Lowering the scale makes the mesh coarser, even if you never
touch the grid.
Magnets
Round disc magnets, 4 × 2 mm, are the default; set the
size to whatever you bought. Press-fit clearance, under Advanced settings
in the magnet box, starts at 0.2 mm. Raise it if the magnets will not go
in, lower it if they fall out.
After printing, push one magnet into each pocket. Before pushing in the
second magnet of a joint, stick it onto the first one: that way round the two
parts attract instead of pushing each other away.
A ligand sits in a pocket cut to its shape and needs no magnet. With ligands
on, Magnet on ligands adds one where there is room. When a joint has no
room for a magnet, Chains & joints says so and that
joint gets none.
Chains & joints
Opens from the button over the preview after a build. Use it when one
chain or one joint should be different from the rest.
Remove a chain to leave it out. It is not built, and nothing is
carved to fit it.
Each joint between two chains: Default follows the
Assembly setting, None leaves the pair apart, Join fuses
them.
The arrow sets how many magnets this one joint gets. It shows
the number once you have set one.
Regenerate builds again with your changes.
Ligands
Drugs, haems and metals bound to the protein. Turn on Include
ligands and each one becomes its own object, in its own filament, sitting in
a pocket carved to its shape. Water, lone ions and leftovers from
crystallisation are always skipped.
Spacefill
Atoms as fused spheres. The sturdiest.
Surface
The same skin the protein uses, so ligand and pocket match.
Ball & stick
Reads as chemistry. Atom and bond size are set separately.
Sticks
Bonds only. Clearest to read, easiest to break.
Two things to know. The pocket in the protein is often sealed, so the slicer
fills it with support. And ligand sizes are in millimetres while atom spacing
follows Scale, so when you raise the scale, raise the ligand size with it.
4 Download and slice
Take the 3MF. Each chain opens as its own named object, ready for a
filament of its own:
PrusaSlicer: right-click an object, Change extruder, pick one.
Bambu Studio / OrcaSlicer: pick the filament for each object in the
object list.
Only one filament? Print all of it in one colour, or the chains one after the
other. The STL button gives one file per chain in a zip, for slicers
without 3MF.
Sharing a build
The button next to the downloads copies a link. It holds the PDB ID and every
setting, so whoever opens it gets the same build, and it is also the most
useful thing to put in a bug report. A build from an uploaded file cannot be
shared this way. A link from an older version of the site shows a message
instead of opening.
5 Put it on a display stand
Optional, and only after a build. Create display stand asks for a
pose first:
Drag to turn the model. Whatever ends up down on your screen
becomes down on the desk.
Roll spins the view in place. Aim first, roll last: while roll
is not zero, dragging follows the rolled picture.
Lock this view when it looks right.
The stand settings open beside the preview.
Live sketch of the stand. It redraws as you change things.
Style (columns and plate), Plaque (the lettering) and
Advanced.
Unlock to go back and change the pose.
Generate stand builds it. Expect a few seconds.
The plaque carries the structure name, the PDB ID, a scale bar and, if you
want, a colour key of the chains and a line of your own. The stand comes out in
the same 3MF as separate objects: plate, columns and lettering can each
have a filament. Printed in one material the letters come out loose; glue them
in, or give them a second colour. The seat on top of each column is cut with a
clearance of 0.35 mm; your first print tells you whether to change it.
How long it takes
Builds are cached, so a structure someone already made with the same settings
comes back straight away. If you are the first, a small protein takes about a
minute and a large complex several. When the server is busy your build waits in
a queue and the page tells you where you are.
If it fails
The build is rejected: go coarser, not finer. Raise Grid spacing
under Printability → Advanced settings. A fine grid can turn a thin neck
into two surfaces touching at a point, which cannot be printed.
Parts are too thin to print: use Surface, raise Scale, or raise Min
wall.
Magnets do not fit: raise Press-fit clearance, or check that the
magnet size matches yours.
A structure will not load: check the ID on rcsb.org. Large
complexes take several minutes; try a coarser grid first.
Every model is checked before export, so you get a message rather than a
broken file. Still stuck? Copy the share link and open an issue on
GitHub.
Words used here
PDB ID
The code of an entry in the Protein Data Bank, the public archive of molecular structures.
Chain
One continuous molecule in an entry: a protein chain, or one DNA strand.
Ligand
A small molecule bound to the structure, such as a drug or a haem.
Å (ångström)
0.1 nanometres. A bond between two carbon atoms is about 1.5 Å long.
Scale
Millimetres of print per ångström. At 1.5, a protein 40 Å wide prints 60 mm wide.
3MF
A 3D print file that keeps several named objects in one file, unlike STL.
Slicer
The program that turns a model into instructions for your printer, such as PrusaSlicer or Bambu Studio.
Supports
Temporary plastic the slicer adds under overhangs, removed after printing.
Watertight
A closed mesh without holes. Slicers need it; pdb2print checks every part.