Dual Filament Mixer Marble Effect
E3D has a Cyclops product which mixes two filaments inside a melt chamber.  Clones of the E3D Cyclops can be found through the usual outlets.  E3D also has software recommendations for using their Cyclops product, which are found here.  They suggest cura as the slicer.

The RepRap firmware (and possibly others as well) allow two extruders steppers to be used in an extrusion move, proportionally mixing two filaments.

In case you want to go further, to get a broad color gamut, you will need five filaments mixed into one extrusion bead.  Cyan (sky-blue), magenta (or bright purple), yellow, white, and black filament can be mixed to make most colors.  "2D" printing is done with four colors (cyan, magenta, yellow, and black), but for 3D printing, you also need white.  2D printing uses white, but it is the white of the paper.  Black is needed to get dark colors, as well as to form neutral gray colors.

Based on the OPs comments, I understand that the software sought is a shader that creates a marble effect on the surface of a print.  I don't know of such software, but, as a software engineer, I imagine it would take roughly this form:


Slice the object conventionally, producing G-code for the object.  Identify all exterior extrusions with a special extruder number.  Multi-material slicers should provide this option (Slic3r-PE does).
Project a 2d image or synthetic pattern onto the 3D external surface of the object.
For each voxel (volume pixel) of the exterior extrusion, determine what it's color should be based on the shading.
With previously determined propagation delay from when the mix is set to when the color is extruded, back up along the extrusion path the correct distance.
Split the extrusion command at the point where the mix must be changed.  Insert new extrusion values.
Output the modified g-code.


I've left out many implementation details.

The scheme depends on how predictable is the delay (in extrusion distance) from when the extrusion mix is changed to when the change comes out of the nozzle.  The variation (if any) in that distance will make the output look jagged and fuzzy.  In some ways, that variations limits the 2D bandwidth of the color information.

Schemes that require sharp, line-to-line coherence may require a purging process.  I assume that for a marble pattern, which I characterize as having soft color changes on a scale that is larger than the extrusion width, purging on every change is not desired or possible.