[Danny Berger](https://dpb587.me/ "Home")

# Hue Play Bracket

[Journal](https://dpb587.me/topics/3d-printing/journal) · September 22, 2026

I have a few [Hue Play light bars](https://www.philips-hue.com/en-us/p/hue-white-and-color-ambiance-play-light-bar-single-pack/7820130U7) next to the wall, but rarely end up using them. They either point directly at the wall and are more like a spotlight, or directly up at the ceiling (and then are in the line of sight and distractingly bright). I always wanted them mostly-hidden, but positioned with an upward angle to highlight travel photos I have printed. New 3D printer + learning 3D modeling + weekend...

![IMG_0973.HEIC](https://dpb587.me/~/blob-iiif-image-v3/eb12b4500f70c60148b263aa88e1b5286d18afa4920fe9ce0f1dc6761d09816d/full/240%2C180/0/default.jpg)

Three Test Prints

## Design

This was a fairly straightforward design, so I didn't even need AI to help me. I continue to rely on [OpenSCAD](https://openscad.org/) to start my real-world models. I took some millimeter-precision measurements of the bookcase and light bar, and then coded up some shapes. I went through three iterations and prints before I was happy with it. It also was my first time using the _Trim_ feature in Bambu Studio which helped me avoid printing the whole piece when I only needed to verify particular aspects of the bracket.

1. First, the light bar was angled incorrectly and tight; and the lip for the shelf was too shallow.
1. Fixed and then added a hole for the screw to securely attach it to the light bar.
1. Finally printed the whole size. I switched to PETG Black in case the light bar gets warm. I pessimistically scaled it up an extra percent in size, but that turned out to be unnecessary.

Custom Hue Play Bracket

Source Code

The OpenSCAD model I used...

[hue-play-bracket.scad](https://github.com/dpb587/dpb587.me/blob/main/appendix/2026-09-22-custom-hue-play-bracket/hue-play-bracket.scad)

```
$fn = 256;

color("aliceblue") {
  translate([0, 0, 62]) {
    difference() {
      cube([40, 29.5, 30]);

      translate([0, 4, 0]) {
        cube([40, 26, 25.5]);
      }

      translate([0, 0, 30]) {
        rotate([-90, 0, 0]) {
          RoundedCorner();
        }
      }
    }
    
    translate([0, 29.5, 24]) {
      difference() {
        cube([40, 2.5, 6]);
      
        translate([0, 2.5, 6]) {
          rotate([180, 0, 0]) {
            RoundedCorner();
          }
        }
      }
    }
  }

  difference() {
    union() {
      cube([40, 25, 62]);

      cube([40, 54, 30]);
    }

    DoHueBarRotate() {
      HueBar();
      HueBarDrill();
    }
    
    RoundedCorner();
    
    translate([0, 54, 0]) {
      rotate([90, 0, 0]) {
        RoundedCorner();
      }
    }
  }
}

module RoundedCorner() {
  translate([-2.5, 1, 1]) {
    rotate([-90, 0, 0]) {
      rotate([0, 90, 0]) {
        difference() {
          cube([1, 1, 60]);
          linear_extrude(h=60) {
            circle(d=2);
          }
        }
      }
    }
  }
}

module DoHueBarRotate() {
  translate([0, 45, 5]) {
    rotate([55, 0, 0]) {
      translate([75, 35, 0]) {
        rotate([90, 0, 0]) {
          rotate([0, -90, 0]) {
            children();
          }
        }
      }
    }
  }
}

module HueBar() {
  color("dimgray") {
    linear_extrude(100) {
      polygon([[0, 0], [0, 46], [29, 44.5], [35, 23], [29, 1.5]]);
    }
  }
}

module HueBarDrill() {
  translate([0, 0, 55]) {
    union() {
      translate([34, 23, 0]) {
        rotate([0, 90, 0]) {
          linear_extrude(h=40) {
            circle(d=4);
          }
        }
      }

      translate([36, 23, 0]) {
        rotate([0, 90, 0]) {
          linear_extrude(h=40) {
            circle(d=6);
          }
        }
      }
    }
  }
}

```

Once I was happy with it, I kicked off a full set and got them installed - no more distracting light bars and a nice line of accent lights along the wall. Eventually I will be able to move them to the upper shelf once I move things back into position. And don't mind the now-highlighted dust...

![IMG_0969.jpg](https://dpb587.me/~/blob-iiif-image-v3/bf585d40646d3c35a22abeaeb6b6968ec7efa1b3b8e52566319d3679adc67921/full/240%2C240/0/default.jpg)

Angled Hue Play light bars

[3D Printing Journal](https://dpb587.me/topics/3d-printing/journal/)

- [**Metal and Glow** 2026-09-20 · Blue vase; abrasive glow; first manual loading.](https://dpb587.me/entries/20260920-metal-and-glow)

Related Topics

[openscad](https://dpb587.me/topics/openscad/)

## Comments

Copyright © 2026 // [dpb587.me](https://dpb587.me/) is a [personal](https://dpb587.me/projects/website), [open source](https://github.com/dpb587/dpb587.me/blob/main/content/post/2026/20260922-custom-hue-play-bracket/_index.md) site.
