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? Buy me a Club-Mate
— it pays for the server. Everything stays free either way.
How this works
Type a PDB ID, pick a style, download a file your slicer understands.
Leave this open while you work down the settings — Generate closes it.
1 Load a structure
Type a 4-character PDB ID and press Enter, or upload a .pdb,
.cif, .mmcif or .bcif. The examples load
with one click — 1UBQ for a small protein, 1BNA for a DNA
duplex, 1ZAA for both together.
2 Pick a style
Surface
Solid molecular surface. Chunky, robust, prints without supports. Use it unless you have a reason not to.
Cartoon / Tubes
Textbook ribbons, or the backbone alone. Both are delicate — plan on supports, ideally resin.
Tube-slab
For DNA and RNA: a backbone with one rung per base. Backbone and bases are set separately, and the sizes behind Advanced settings follow whichever pair you pick until you move them yourself.
Ligands
Bound molecules — hemes, drugs, metal ions — are off by default.
Turn on Include ligands and each one becomes its own object with its own
filament, sitting in a pocket carved to its shape. Four styles:
Ball & stick
Atoms as spheres, bonds as rods. Atom and bond size are set independently.
Spacefill
Van der Waals spheres fused into one solid. The chunkiest option and the easiest print.
Surface
The same molecular surface the protein uses, so the drug and its pocket are built the same way and match. Sized by probe radius and surface padding under Protein.
Sticks
Bonds only, atoms just large enough to join them. Delicate.
Only the sliders the chosen style actually reads are shown, so the panel
changes as you switch between them.
3 Set the size
Scale (mm/Å)
How big it comes out. Estimated dimensions appear under the slider after the first build.
Grid spacing
Mesh resolution — smaller is finer and slower.
Min wall
Under Advanced: the thinnest feature allowed, grown to size as the model is built. Surface ignores it, being thick everywhere already.
What actually matters is grid spacing divided by scale, so dropping the
scale coarsens the mesh even though you never touched the grid.
4 Connect the chains
Under Printability → Assembly. One piece joins the chains
in plastic, either by Inflate (grow the gap closed, nothing to size)
or Bridges (a rod of the diameter you set). Takes apart keeps the
chains as separate objects, held by Magnets in a pocket cut into each
side, or by Nothing at all — which is the default.
Press-fit clearance defaults to 0.2 mm, which is right for most
FDM printers: a nominal pocket prints undersize and will not take the magnet.
Raise it if the magnets will not go in, lower it if they fall out.
Connect DNA base pairs fuses the two strands of a duplex at every
base pair, so the helix holds itself together.
5 Download and slice
Take the 3MF. In PrusaSlicer each chain opens as its own named object:
right-click one, Change extruder, assign a filament, slice. Per-chain STLs
come as a zip if you would rather. With magnets, push one into each pocket after
printing.
6 Put it on a display stand
Optional, and only after a build. Create display stand adds a plate,
one to three columns whose tops are carved to fit the underside of the model,
and a front apron carrying an engraved plaque.
Turn the model to the pose you want first: whatever ends up
down on your screen becomes down on the desk. Roll spins the
view in place — the one turn orbiting cannot do — but while it is
off zero, dragging follows the rolled picture, so aim first and roll last.
Then lock the view and the settings panel opens on the right, with a live
sketch of the stand at the top that redraws as you change things.
Presets
Museum, Classical and Lab set every part at once. Touch any control and it becomes Custom.
Columns
Square, round, fluted or tapered, with an optional flared foot. Where they stand is worked out for you: a column can only go where nothing else is underneath it, and they are kept in from the silhouette edge.
Plaque
PDB ID, structure name, a scale bar with the Å→mm ratio, a colour-matched chain legend, and a line of your own. Two bundled bold faces, or the stroke font when the lettering gets small.
Cradle
Each column top is hollowed to the model with a clearance you can set. The 0.35 mm default is a starting point, not a measured value — the first print will tell you.
The stand comes out in the same 3MF as the model, as separate objects,
so plate, columns and lettering can each take their own filament. Printed in one
material the raised letters sit loose in their recesses — glue them, or
assign a second filament.
Stands are never cached: they are keyed to a pose nobody else will repeat,
so each one is solved fresh. Expect a few seconds on a small structure.
How long it takes
Finished builds are cached, so a structure someone has already made at the
same settings comes back immediately. If you are the first to ask, a small
protein takes about a minute and a large complex several — it is a small
server and the meshing is the slow part.
If it fails
Try going coarser, not finer. A coarse grid smooths a thin neck shut; a fine
one can resolve it into two surfaces meeting at a point, which is not printable
and gets rejected. Meshes are checked before export, so you get a message rather
than a broken file.
Turn a protein or DNA structure into something you can hold
— free, no account, nothing to install.
Quick start
Enter a PDB ID, upload a .pdb/.cif, or click one of the examples.
Pick a style — surface for a robust print, cartoon or tubes for ribbons, tube-slab for DNA.
Set the size, and choose whether it comes apart or prints as one piece.
Generate, then download the 3MF and open it in your slicer.
New in this release — July 2026
Display stands — after a build, mount the model on a plate with
carved columns and an engraved plaque: PDB ID, name, scale bar and a
colour-matched chain legend. Three column styles and three presets.
Ligand styles — hemes, drugs and metals in ball & stick,
spacefill, surface or sticks, each in its own carved pocket.