Convert BREP to STL
A .brep file is OpenCASCADE’s own shape format — the kernel behind FreeCAD, and the same kernel that reads STEP files on this site. Almost nothing outside that world opens one. This converts it into an STL you can print or send to anybody.
Drag a 3D file here, or.
This page is set up for BREP files. Other formats we can read work here too.
The file is read on your own computer. It is never uploaded.
Your file is read by your own browser and never sent to a server. There is no upload, no account and no copy of your model anywhere but on your computer.
What a BREP file actually is
BREP stands for boundary representation, which is the way every serious CAD kernel describes a solid: a list of faces, the edges where they meet, and the exact surfaces those faces lie on. A .brep file is that structure written straight to disk by OpenCASCADE, with no exchange format wrapped around it.
That makes it fast and lossless within OpenCASCADE, and nearly useless outside it. FreeCAD writes .brep when you export a shape at the lowest level; some Python scripting with pythonOCC or CadQuery produces them; and that is roughly the whole population of these files. This site can read them because it uses the same kernel.
It records no unit, and that is the one thing to watch
A STEP file states its unit. An IGES file states its unit. A BREP file states nothing at all — it is raw geometry, and what one unit means was known only to the program that wrote it.
So the numbers are read as millimetres, which is what OpenCASCADE and FreeCAD work in by default and is right the great majority of the time. The measurements under the 3D view are the check: look at the width, depth and height, and if the part is a thousand or twenty-five times off from the size you expect, change the input unit box until it is right. Nothing is written until you do.
The detail setting works exactly as it does for STEP
A BREP holds exact surfaces, like a STEP file, so the triangles are made during the conversion and you choose how fine. Normal is right for almost all printing, Fine for visible curved surfaces, Draft for a quick look. The triangle count updates as you change the setting.
A BREP can hold several shapes, and those arrive as separate parts in the object list. They have no names, because a .brep file does not store any — they are numbered instead. The 3D view is the quickest way to work out which is which: isolate one and look.
Consider exporting STEP from FreeCAD instead
If you are producing these files yourself, STEP is nearly always the better export. It records the unit, it keeps part names, it keeps colours, and every CAD program on earth reads it. A .brep gives you none of that and is only worth using when you are moving a shape between two OpenCASCADE programs and want no translation at all.
It converts perfectly well here either way. This is a suggestion about the next file, not a complaint about this one.
What survives, and what does not
Kept in the STL file
- The shape, to the tolerance you choose
- Every separate shape in the file, merged into one body or picked out one at a time
- The proportions exactly — only the unit is a guess, and you can correct it
Lost on the way
- The exact curved surfaces — they become flat triangles and cannot be turned back
- Nothing else, because a BREP file carries no names, no colours and no units to lose
How to convert BREP to STL
Drop the .brep or .brp file in
The CAD engine is fetched from a public CDN the first time you open a CAD file — about 3 MB, once per visit.
Check the size under the 3D view
A BREP records no unit, so the numbers are read as millimetres. This is the only place you can catch a shape that was authored in something else.
Correct the input unit if the size is wrong
Change the input unit box until the width, depth and height match the part you know. Everything on the page follows immediately.
Choose the detail
Normal for printing. The triangle count beside the control shows what each setting costs before you write anything.
Convert and download
Binary STL, output unit millimetres, Z up — the combination every slicer expects.
BREP and STL compared
| Property | BREP.brep .brp | STL.stl |
|---|---|---|
| File contents | Plain text, written by OpenCASCADE for its own use. | Binary or plain text. Binary is an 80-byte header, a triangle count, then 50 bytes per triangle. |
| Geometry | Exact surfaces, as OpenCASCADE holds them in memory. | Triangles only. Curves are approximated when the file is made, and cannot be recovered. |
| Units | None. The kernel’s own numbers, with no unit attached. | None. The file stores bare numbers, and every reader has to guess what they mean. |
| Colour and texture | None. Colour lives outside the shape in the applications that use it. | None. There is no place in the format for a colour, a material or a texture. |
| Separate objects | One shape, which may itself be a compound of several solids. | One body. Several parts written into one STL become one undivided lump of triangles. |
| Published by | OpenCASCADE, the CAD kernel behind FreeCAD and KiCad’s 3D viewer. | 3D Systems, 1987, for the first stereolithography machines. |
| Written by | FreeCAD, and code written directly against OpenCASCADE. | Every CAD program and every slicer, as the common denominator. |
Questions
- What writes .brep files?
- FreeCAD, and Python CAD work built on pythonOCC or CadQuery. It is OpenCASCADE’s native shape format, so it appears wherever that kernel is used directly and almost nowhere else.
- Is .brp the same as .brep?
- Yes. Two extensions for one format, and this page reads either.
- How do I know what unit the file is in?
- You cannot, from the file — BREP records nothing about units. Millimetres is assumed because that is OpenCASCADE’s and FreeCAD’s default. Check the measurements under the 3D view against the real part and correct the input unit if they are wrong.
- Why are the parts unnamed?
- Because the format stores no names. A .brep is raw topology and geometry with nothing around it. They are numbered instead — isolate one in the object list and the 3D view shows you which it is.
- Should I be using STEP instead?
- For anything leaving your own machine, yes. STEP records units, names and colours, and every CAD program reads it. BREP is for moving a shape between two OpenCASCADE programs with no translation at all.
Having it printed
If the part is larger than your bed, needs a material your printer cannot handle, or you do not have a printer, these will print it and post it to you. Work out what it would cost you first — the cost calculator on this site gives you a figure to compare against.
- JLC3DPCheapest for resin and nylon, slow shipping
- CraftcloudCompares dozens of printers at once, including local ones
- PCBWayMetal printing and CNC as well as plastic
These are ordinary links, not paid referrals — we earn nothing if you use them. The converter above is the same whether you do or not.
Where to go next
Other ways to get a STL file
Related guides and tools
- Gridfinity generatorBins and baseplates, any size, built in the browser
- Turn text into an STLType a word and print it, without drawing anything
- Turn an image into an STLA photo or a logo, turned into something you can print
- Lithophane generatorA photo printed as thickness, lit from behind
- Repair an STL that will not sliceClose the holes and separate the bad edges so a slicer accepts it
- STL to G-codeGuide
- How to convert an STL file to G-codeGuide