Introduction
This project has been on my personal wish list for quite a while. I’ve never had a strong enough need to build one at work, so I decided to give it a shot in my spare time. This gizmo is capable of projecting up to three different textures from three axes using just Postions and Normals AOVs. I’ve built as many controls as I could think of to make it as flexible as possible.

Features
- Texture Projections: Projects up to three different textures based on the X, Y, and Z axes.
- High-Quality Sampling: Includes Linear, Bilinear, and Anisotropic filtering to reduce blur at oblique angles.
- Flexible Controls:
- Global and per-axis Translate, Rotate, and Scale.
- Output controls to view the merged result or isolate specific axes.
Blend Exponentto control the sharpness of the transition between projections.Apply X Texture on All Axistoggle for quick single-texture mapping.Apply Texture Alphatoggle to apply the alpha from the texture inputs.
- BlinkScript Acceleration: Fully vectorized for CPU and supports GPU acceleration.
- Open Source: I’ve included the full source of the kernel (with comments) and gizmo if you want to learn from it or modify it yourself.

Download
I’ve released this under the permissible MIT license to allow for collaboration and use in any type of work (personal or commercial).
If you want to use the gizmo or read the source code yourself, you can download it on my GitHub.
Direct link to the .gizmo file here.
