A downloadable hologram generator for Windows

Buy Now$34.99 USD or more

Holocraft is a program that allows for the generation of unique 'specular holograms' which are a type of hologram that relies on the manipulation of reflected light to produce a holographic effect.

Similar to a 'scratch hologram' (aka 'abrasion hologram') a specular hologram is an optically-accurate surface that produces a rigid undistorted holographic image. This is in contrast to scratch holograms, which are constructed through the use of circular-arc scratches or grooves embedded into a reflective medium. Scratch holograms offer a similar effect with the exception that the holographic image distorts and deforms outside of a narrow viewing range.

Holocraft takes 3D model files as input, and provides the user various options for manipulating how the final hologram image will appear. The user then is able to output the requisite toolpaths as either a raster image, a vector image, or CNC 'g-code' for direct hologram fabrication using a CNC machine.

Creating specular holograms is an art unto itself, and Holocraft is just a tool for creating them using 3D models - it does not automatically convert models to holograms for you, it only allows users to generate groove-optics which can be used to produce a holographic effect.

This is early-access alpha version software which lacks complete documentation. If you have any questions please leave a comment and I will get back to you shortly.

Updated 22 days ago
StatusIn development
AuthorDeftware Industries
Tags3D, cnc, Generator, hologram, optics, specular-hologram
Average sessionA few minutes


Buy Now$34.99 USD or more

In order to download this hologram generator you must purchase it at or above the minimum price of $34.99 USD. You will get access to the following files:

Holocraft v2.2a.zip 221 kB
Holocraft v2.0a 74 kB
Holocraft v1.1a 33 kB

Development log


Log in with itch.io to leave a comment.


Hey I have a question. I was thinking of buying your pixel cnc, do you plan on integrating any rotational  axis like a, b, or c. I ask because I'm building a 5 axis cnc and I like the look of your program.

Thanks! I do have a hankering for some 5-axis toolpath generation algorithm work at some point down the road, but PixelCNC is not the project that I will be tackling 5-axes with.

PixelCNC's primary focus is on loading 2D images as input (although v1.30a will be released today which includes 3D model import functionality, but that just generates a 2D image from the 3D model geometry). As a consequence of the 2D image paradigm the complexity of a project never necessitates more than 3-axes of cutter articulation - with the exception of projects that may have deep spots where a tool is not long enough to reach a cut from a vertical approach, and the chuck will crash into the material.

Otherwise, as long as the cutting tool is long enough to prevent the spindle from crashing into the material a 3-axis will always be able to do anything PixelCNC is capable of generating simply because every surface of a PixelCNC project is accessible from directly above it. There are never overhangs or undercuts, etc.. This is just the nature of 2D heightfields, which is effectively PixelCNC's core premise.

In either case, there's no reason you can't run 3-axis programs on a 5-axis CNC! :)


3 in on stainless

Not bad! Thanks for sharing :D

I talked to Matthew Brand and he offered me some tips. Let me know if your interested I'll send you what he told me.

Sure, that would be great. I sent him an email twice, about 6 months apart, but never got any reply.


He told me "

* I use a fairly massive CNC machine to drag a diamond stylus through aluminum alloy at a depths of 20-50 micron.  Had to customize some machine parts and programming to get optically smooth motion.
* It helps to tilt the stylus slightly in the direction of motion and to use a very light-gauge lubricant.  I grind & polish the stylus to a Rouleax-like shape to promote reflectivity.
* Everybody gets the geometry of the stylus motion curves wrong — they're not conic.  You need to solve an ODE that asks for rigid 3D image motion when some part of the optical path (e.g. the plate) moves.
* Lighting should be consistent with whatever assumptions you make in your ODE.  Point-like sources work best; broad-spectrum sources allow diffractive color effects."

Hope this helps

Deleted post

Right now the square that you setup your hologram scene within is what you set the size of via the export dialogs:

The blue arrows are the extent of your hologram, so you want to keep your optics within there if you're doing a square hologram. Otherwise, if you can extend your hologram horizontally further if you wish, and let your optics overlap into the MARGIN areas. The blue rectangle around the 'Inches Scale' CNC export parameter refers to the length of the arrows denoting the hologram's size, in inches.

Since you set the size of the hologram at export time all you need to worry about is keeping things inside the square, but there's not currently a way to specify a size ahead of time: the hologram-area square has no actual size, so there's nothing for rulers to show if they were there. But, if you want to make a non-square hologram that's wider than it is tall, then just keep all your optics within the top/bottom of the window, vertically, and let your optics extend out into the margins a bit, and then the Inches Scale parameter would just be referring solely to the height of your hologram. Keep in mind though that if you're not using 'Origin at Center' that the bottom-left of your hologram will only be for the square area. A rectangular hologram will not start at the actual bottom-left most corner of your hologram's optics. I personally recommend you use the center origin mode, and then measure the center of your material to zero your CNC at.

I've been trying to hack in a bunch of little things real quick into v2.2a before I upload it, while I have the time today. I'm starting to feel like I should expand Holocraft's model-loading capacity, because right now it's limited to very simple models with low vertex/polygon counts - due to the data structures it precalculates from the model to facilitate fast optic generation. I'm also going to separate the optics slider into two sliders: optic count and threshold, so that if you are in Vertex or Wireframe mode you can adjust the number of optics to squeeze onto a edge line while independently adjusting the threshold at which an edge line qualifies for having any optics created along it at all.

Right now I'm switching over to 64-bit compiler to allow Holocraft to allocate more memory and be able to load larger models (~4x more verts/polys), due to 64-bit EXEs being able to access tons more system memory. I've also changed Holocraft to allocate memory dynamically.

There's some weird thing going on where some models have more than two polygons attached to a single edge spanning two vertices. If I can figure out how to resolve these funky situations (or a model having 50+ polygons to one single vertex!) I can expand it pretty easily to allow for much more complicated models.

Your hologram looks pretty good so far, but I do have some pointers. It looks like your light angle doesn't match the actual incident light angle. The light source's angle changes the 'depth' of the hologram, as far as how much straight above the hologram it's shining in from. You can tell if your light is too high and not out in front of the hologram enough because the object rotates much faster/farther than the actual hologram surface itself. You want to match your light position with what you have your Light slider set to. This changes the vertical steepness of the optic grooves themselves to match the light source, and the holographic effect is much more pronounced when the viewer orientation (or hologram angle) matches the apparent orientation of the geometry being depicted.

Also, if you can find some kind of metal polish (I use one called 'Blue Magic') and put a bit onto a rag, and then just buff the whole surface of the hologram real quick after cutting it you can shine up your grooves and double their brightness really easy. You don't need to buff the whole thing to a mirror shine, just going over it with a rag and some metal polish real quick will clean them up and get brighter glints.

For cutting I took some little pyramid carbide engraving bits (they look like a 3-sided pyramid at the tip, but have a tiny trangle facet on the very tip where the 3 sides meet) and diamond-ground it into more of a very slightly rounded point - getting rid of that triangle facet. A rounded point will produce rounded grooves which can catch the light at almost any angle, maximizing your glints. This took me a bit of trial/error to get right, but basically I just ground the carbide to a point by spinning it in my spindle and put the diamond grinding surface on it. Once it was a sharp point then I just barely rounded it by tilting the diamond sharpener up and over to the opposite side once or twice. You want a super duper tiny diameter.

One last thing: you want to figure out what feed rate minimizes any wobbles you get in your optic grooves. A bunch of pressure and moving too fast or slow on a machine that has some flex can induce little speed-wobbles in the tool as it scores the surface, which produces 'blurry' looking holograms that don't have nice sharp defined glints - because the glints will appear all over the optic in multiple spots.

I'll have v2.2a up within a few hours. I almost want to get some more aluminum sheets and start making bigger holograms now! Maybe I'll throw a few bucks at McMaster Carr as a holiday splurge and see what I can make happen over vacation.


Love the update

Good to hear! I'll probably hammer out a few more things soon, no telling when, but hopefully within the next few weeks. I'd like to add better multithreading capability to speed up rendering and optic generation - it would be nice if loading bigger models didn't bog it down as much. I'm also thinking about modifying it so that when you are rotating/moving the model around it draws a low-poly proxy so that it's responsive.

More importantly I'd like to add better optic generation, maybe one that is sort of the inverse of the vertex mode - where it plots optics at the centers of polygon faces? I'd like to also make the wireframe optic mode have shading like the vertex mode has now. The big feature I got running a bit in the old version of Holocraft, pre-2.0, with the projected texture optic generation is something I'd like to get going as well, so that you can just have an arbitrary pattern of optics across a model, regardless of its vertices and polygons.

Right now I'm working on a devlog post for this release.


I think I've got my scratching technique down. I'm using an auto center punch to keep it contact at the correct pressure to make I light scratch.

(1 edit)

How does the Texture work exactly? When I click load texture nothing happens.

(1 edit)

The texture mode actually isn't implemented yet. It is implemented in v1.3a, however, and simply allows you to load an image *which is 'projected' onto the loaded model as if there's a slide projector casting the image onto the model from your vantage point, and light pixels in the image translate to creating optics while dark areas are blank. This gives a sort of raw control over how optics are distributed over the surface, instead of relying on how a model's vertices or polygons/edges are situated. I will try to get it all running by the next version ;)

(1 edit) (+1)

Thanks for an awesome program

I'm glad Holocraft is finding some use!  :)

I'm releasing v2.2 right now to fix an issue with how text is output for both SVG and CNC g-code that causes new-line/carriage-returns to be output wrong at times. I'm also including some example models with the build, so users can start playing with some geometry. I'd like to improve the optic placement/generation, and finally get texture mode in there so that an image can be 'projected' onto a model and used for designating where optics should be across its surface, so that any geometry can be depicted instead of by its vertices or edges - which can sometimes not be very good for generating optics off of with some models.


What does it mean when it says optic segments overflow and crashes?

Also how do you get it to not calculate the back of the object through the front?  Like its transparent.

(1 edit)

Hi nramco  nracmo, (woops!)

Optic segments overflow means that an optic is being broken up into more than 24 individual occluded/unoccluded segments, where you can think of an entire optic depicting a point in 3D space and the length of the optic is broken into "visible" and "invisible" sections. If you have a model of say a triangle way in the background and then a set of 20 vertical rectangles that make parts of it visible and invisible all along the viewing angle then its optic segments will get broken up too much.

Also, it's recommended that you disable 'Intersection Resolution', which can also cause a segment to be chopped up into too many segments. It was more of an experimental feature but I have yet to get it working as good as I was originally hoping, and it's best to leave it disabled.

Your resulting hologram should be 'opaque' as long as 'Occlusion Detection' is enabled. This will prevent optics from being created for back-facing geometry, and also clip sections of optics that are blocked from view by foreground geometry. If you also want it to appear completely opaque in the view you can enable 'Show Faces' in the View menu.

Also, I don't recall if it's mentioned anywhere, but the 'Light' slider controls the expected/assumed azimuth (pitch angle) of the illumination source, where when the slider is at the top-most position the light source is assumed to be directly above the hologram, shining down on it at a 90 degree angle from the direction the hologram is facing. At the bottom of the Light azimuth slider is 60 degrees, so still from somewhat above the hologram but shining more 'head-on'.

The purpose is to accomodate the use of a ceiling light source in different sized rooms, where a larger room with a lower ceiling would use a Light angle that has the slider closer toward the bottom, and a room with a light more directly above the desired hologram position will have the slider up higher.

Also, if you have any requests or ideas for features I'd be glad to hear them! I am pretty busy working on PixelCNC most of the time but I am always willing to see what I can do. If there's a limitation or a bug that you would like me to look at, or a feature or change, just let me know!

There is a problem with the svg file conversion.

(empty file or program no response...)

Please add conversion function to dxf file.

I will look into it.

Seems to be working fine:

Holocraft does not "convert" models to SVG, it generates groove optics from a model, which can be output as SVG lines/arcs/curves or as Mach3 CNC G-code, but it's up to the user's discretion how optics are generated: the perspective of the model, which metric to generate optics by, etc.

Are you creating any optics? Are you saving the file to a location that doesn't require administrator privileges? Now that PixelCNC has reached a relatively solid and decently featured state I was going to change gears to start making videos to demonstrate it and show off its capabilities, perhaps it would be a good idea to make a Holocraft tutorial video as well.

Also: what settings are you using on the SVG output settings dialog?

What if I hire you in order to develop this further?

Dan Lieberman?

Hey is it ready to buy it the sofware? 

Please contact me Lucasbeathyate@gmail.com! Thnx´s!

Dear Mr.  Van Nuland,

Are you selling a complete solution? If not can I buy the Holocraft software?

Best regards,



You can buy Holocraft now, but its development, documentation, and support are low-priority for the moment. It has been released purely to satisfy the curiosity of the most courageous. Thanks for your interest.

Hola! estoy interesado en obtener el programa, estoy terminando una muestra artistica en Uruguay. Y me gustaría exponer algunas obras con estas caracteristicas, obviamente con los respectivos creditos a los desarrolladores del programa lucasbeathyate@gmail.com es mi mail

This looks amazing!  Is there any way to download / purchase Holocraft?   I'd LOVE to play around with it!


(1 edit)

Hi, apologies for the delay in reply. I'm not currently offering Holocraft for sale to the public yet as it is destined to become a facet of a final CAD/CAM package for DIY hobby CNCer's. If someone only wants Holocraft then that's the only 'option' they are charged for (along with the base CAD/CAM program fee). There will be a variety of optional features users can pay for, so they're not forced to shell out a few hundred bucks just for 1 or 2 features that they might use in existing programs.

You can buy Holocraft now, but its development, documentation, and support are low-priority for the moment. It has been released purely to satisfy the curiosity of the most courageous. Thanks for your interest.


What if I hire you in order to develop this further?

Best regards,

Dan Lieberman



Hey, is this software available for download yet? It looks incredible and I'd love to use it to make some holograms. Thanks, Sarah


You can buy Holocraft now, but its development, documentation, and support are low-priority for the moment. It has been released purely to satisfy the curiosity of the most courageous. Thanks for your interest.