Show HN: 3D print Z reinforcement via injected loops (mgunlogson.github.io)

66 points by mgunlogson ↗ HN
Commodity FDM print strength is limited by poor Z-axis layer bonding. Parts crack along Z under stress. MAGMA tries to fix this in software that works on any FDM 3D printer.

It's a fork of OrcaSlicer with a new infill type that creates paired U-shaped vertical channels inside the print, plus G-code that injects molten plastic into those channels to bridge Z layer interfaces with continuous plastic.

Big caveat: I have a junky Ender 3 and haven't gotten a clean physical print yet. Don't expect this to work out of the box! After months of tinkering, I'm releasing the software so the 3DP community can experiment with nozzles, multi-material, weird hardware, and other print parameters I can't. There's around 40 MAGMA-specific settings to fiddle with, plus some general quality-of-life features (e.g. printing thin infill sections as solid, and a "dual infill shell" feature that applies MAGMA only to the outer shell to save print time).

THIS CODE IS ALPHA. Around 50 prints old. The injection G-code is novel. Some printer firmware won't like extruding without movement. In extreme cases it could damage your printer or start a fire. DON'T WALK AWAY WHILE PRINTING.

Why MAGMA? "Lava tubes" is a misnomer. Molten rock is magma underground, lava only after it surfaces. The injected tubes are buried inside the print, so "magma tubes" is the correct term.

28 comments

[ 4.5 ms ] story [ 53.2 ms ] thread
Here for any questions about how it all works :).
Do you have a photos of objects you build with this? A video?
No, unfortunately. I've printed a ton of objects but nothing clean enough to be interesting.

The top of cells always melt as I'm using the same material for injection and the rest of the print. Someone with a dual nozzle printer could try something like PLA injection in a polycarbonate part. I added support but don't have a printer capable of that.

It's also possible that different print settings would work. I'm releasing the features to the community as I've run out of patience with doing a hundred hours of test prints.

We need to crowd test the best settings and nozzles, materials, etc to make this work well

I’m surprised you bothered writing software instead of writing some G code by hand for testing
Because that's not accessible.

IMO the reason other efforts to achieve similar Z reinforcement have gone nowhere is because it was one guy fiddling with G-Code. All the big innovations in 3DP have been community projects. Now anyone can download my binaries and try it.

I'm personally very convinced this will work. That's why I did it. We just need to figure out the right settings. Maybe use a different material for injection or coat the nozzle in something.

We'll see. There's a long history of crazy ideas and cold receptions. We even have famous examples from this site https://news.ycombinator.com/item?id=9224

Either I'll end up wrong, and this will fade into obscurity. Or it will turn out I was right and a lot of people will read this comment someday.

Instead of one large channel throughout the whole print, why not multiple small 2-4 layer bridges?
I had the same thought -- with a checkerboard pattern of 1:1:2 "brick" voids where each brick would be surrounded by bricks of a differing offset, one could conceivably calibrate the injection step and the print might have less propensity to cleave along xy planes. But, given the complexity of that calibration (and need for a high-flow head) I'd rather use the brick infill available today.
You can set the tube height to like 4mm and that's pretty much what you'll get.

The tubes only need to be tall enough for a "window" at the bottom and a splitter in the middle so that plastic will flow up one side and down the other.

The window height calculations are automatic right now. To make sure the window area is as large as the tubes so it doesn't create a bottleneck that stops flow.

But if you print tiny tubes with a tiny nozzle you could probably get the tube height down to ~3mm.

There's binaries if you want to play with the settings and see it for yourself

Why do you think this is better than the old practice of filling straight holes a few layers deep?
Is that available in any of the standard slicers?
because the plastic has to displace air.

This method seals the nozzle against the tube and injects under pressure (theoretically). And leaves a path for air to escape. Pretty much a micro version of injection molding

I've seen this technique a lot, but mostly as a post-processing technique where resin, fiber, or some other type of plastic is injected into the channels after printing is completed. It would be interesting to see this done during the normal printing process.

I am a little skeptical on the technique though. FDM printed walls are known to not handle pressure well, especially during printing when its past its glass-transition temperature. This process essentially uses the pressure from the extruder to inject a channel with molten plastic. Will this pressure could cause the walls to delaminate from each other or deform?

And how does this affect plastic that tends to warp significantly during printing? The molten plastic is injected into insulated channels that will not receive any active cooling. You're also parking the nozzle at the injection points, which will cause a lot of uneven cooling at the surface as well. For high-warping plastics like ABS, that could cause a lot of issues.

So I guess the underlying question should be, does this actually work? What is the measured difference in tension strength between parts printed normally vs with MAGMA infills? Specifically when using the same amount of plastic. There's no data or even pictures that indicate this is working.

The simplest option is to print the part raised at an angle so the layer lines aren't parallel to faces. Clough42 has some good videos on support/rib design in Fusion: https://www.youtube.com/watch?v=XXaLxSmtnbQ, based on https://www.youtube.com/watch?v=8NKVNwVaZU0.

But you can definitely get printers to dump a blob of filament out without worrying about cooling problems, if the extruder speed is high enough. I was debugging some issues in P2PP (a post processor for the Mosaic Palette. One problem was that the printer would extrude all the filament at the start of some travels instead of along the path.

> Will this pressure could cause the walls to delaminate from each other or deform?

Nobody knows :) . Give it a try!

> You're also parking the nozzle at the injection points, which will cause a lot of uneven cooling at the surface as well.

There's an "injection fan speed" setting that should probably be kept at 100%.

I'm not sure the "not have any cooling" will be a problem in practice. Because unlike normal printing you're not concentrating all the heat on one layer. It's going down Z dozens-hundreds of layers to already cooled areas of the part printed minutes ago. And the design tries to avoid having nearby tubes end on the same Z. So the area directly adjacent to the tube has probably been cooling for a while.

> So I guess the underlying question should be, does this actually work? What is the measured difference in tension strength between parts printed normally vs with MAGMA infills? Specifically when using the same amount of plastic. There's no data or even pictures that indicate this is working.

No one knows. And I can't test it anymore. The code is done and I have other projects to work on. I've done probably a hundred test prints on my POS Ender 3. I need testers with better hardware. No matter what I try the top of the cell gets melty. This could be the low flow rate of my hotend (limits injection speed), the fairly bad cooling, or maybe something fancier like dual material is needed. Or maybe I just haven't landed on a good combination of settings since there's dozens of them.

I particularly want someone with dual nozzle to test so they can try injecting a low melting plastic like PLA into a heat resistant shell like CF-Nylon or more exotic materials. There's printer plastics that aren't even at glass transition temp when PLA is at printing temperature.

I added dual nozzle and multi material support. Obviously hasn't been tested though

When you say continuous interlocking U shape, are you saying it fills one channel from the top until the connected channel fills from the bottom?
Yes. It's a modified triangle infill pattern.

A solver pairs the triangle with one of its neighbors. Then cuts a window at the bottom during the slice. So plastic gets injected into the top of a triangle tube and flows through the window at the bottom of the U to its neighbor cell.

Download the binaries and try slicing with magma infill type. Turn off visibility of all the other line types and you'll see how it works

Interlocking layers is an interesting idea, but I don't see how this is supposed to work.

You can't use the nozzle to inject that much filament into a large cavity because it will cool and solidify right out of the nozzle. Anyone who has ever cleaned blobs of filament off of a nozzle after a print failure can tell you what happens when you try to pump hot filament into empty space. Filament cools below the melt temperature quickly, especially when it comes into contact with your print.

At least the README admits that it doesn't work:

> What’s NOT yet working: the physical print. On my Ender, same-material plastic injected into freshly-printed cells melts the cell walls before they can seal. The math says this should work; the materials science is the open question.

I like seeing experimentation, but this is a lot of software work dedicated to something that couldn't possibly work. I'm curious about "the math says this should work" combined with the large number of em-dashes and other LLM tells. Was this experiment largely driven by an LLM?

There is some interesting work on the topic of staggered interlocking layers: https://github.com/OrcaSlicer/OrcaSlicer/pull/8181

Reading any of the research on that should make it obvious that you can't "inject" molten plastic into larger cavities, though.

Everything about that readme quote screams LLM. All it's missing is the user responding, "that doesn't make any sense, this won't work at all", and Claude responding back, "you're absolutely right".
The filament is injected into tiny triangular U shaped channels, about twice as wide as the filament diameter. The depth of the channels is configurable and you can go as shallow as ~4mm. If you inject at a high rate that's not nearly enough time for the filament to cool off.

I actually had the opposite problem in testing. Plastic has bad thermal conductivity and the large volume of plastic in the channel was melting the top of the cell. That's why I asked for testers with dual nozzle printers. So they could try injecting a low melting point material into the channel while printing the rest of the part with something like Polycarbonate or CF-Nylon.

Some of the docs were written by LLM because writing docs is boring. Did you look at the code or try the binaries?

> Reading any of the research on that should make it obvious that you can't "inject" molten plastic into larger cavities, though.

There is quite a bit of research on injection molding. The pressure at the tip of a regular 3DP nozzle is around 200psi. That's actually high enough to inject a reasonably large cavity.

(comment deleted)
>What’s NOT yet working: the physical print

So, nothing to show.

Next.

Hmm, I wonder if a simpler room-temp alternative would be to fill a low-infill print with 2-part resin. In a way that would be a bit like casting, except you wouldn't ever remove "the mold".
I came across a method of printing that attempts to make the extrusion of two adjacent layers overlap each other by 50%, with the goal of creating stronger layer adhesion. They called it HexWAM and it seemed more likely to work than this one. There were also some test prints available. The website with the full description seems to be down and archive.org unfortunately didn't get the images. Incidentally the person doing this also had an Ender 3, so OP may be able to try out their gcode example directly.

https://www.printables.com/model/438863-supper-strong-layers...

https://www.printables.com/model/437584-qualitative-layer-ad...

https://web.archive.org/web/20251008223152/https://bcarvercr...

I doubt that filling a long thin channel will ever work. The heat + pressure will always collapse the thin infill walls.

In general infills does not provide much strength to a part, it is way better to have stronger walls.

And z-direction does not need to be more stable than the other directions so there is no need for long continuous strands anyway.

Maybe it would work better with smaller, less tall, slots at the inside of the walls.

Lets say 2-3 layer heights tall, continuously filled slots, which are then interleaved with each other. More like bricks less like columns. The outer wall layers would provide stability to prevent collapse. And over spill or bulging would occur towards the inside of the part.

This re-thinks the entire 3D printing paradigm. Whether this specific idea works or not, I'm sure that this will lead 3D printing research in interesting directions - and the defensive publication is a massive help.
Thank you!

A lot of people here took issue with the crappy docs. My mistake, I barely spent any time on them.

The reason this "came out of nowhere" is because I was working on it in secret for a long time. So that patent trolls couldn't screw the 3DP community yet again.

I do quite a bit of 3d printing of functional parts and am trying to understand how this would fundamentally differ from printing at 100% infill? What type of part requirements are causing failures when something is just solid? Just curious what problem space this is targeting?