Skip to content

Instantly share code, notes, and snippets.

@haliphax
haliphax / support-fin.scad
Created July 14, 2026 04:32
Generate support fins in OpenSCAD
include <BOSL2/std.scad>;
module support_fin(raft_diameter, raft_thickness, fin_thickness) {
other = raft_diameter / sqrt(2);
translate([0, 0, other - raft_thickness])
union() {
// raft
translate([0, 0, -other + raft_thickness])
linear_extrude(raft_thickness)
@haliphax
haliphax / Multiboard rail slot die.scad
Created July 10, 2026 18:17
OpenSCAD - Multiboard rail slot die
module slot() {
inside_pts = [
[0, 8.5], [7.5, 8.5], [9, 8.5], [16, 8.5], [17.5, 8.5], [28.5, 8.5],
[33.5, 3.5], [33.5, -3.5], [28.5, -8.5], [17.5, -8.5], [16, -8.5],
[9, -8.5], [7.5, -8.5], [0, -8.5]
];
outside_pts = [
[0, 7], [7.5, 7], [9, 8.5], [16, 8.5], [17.5, 7], [28, 7],
[32, 3], [32, -3], [28, -7], [17.5, -7], [16, -8.5], [9, -8.5],
@haliphax
haliphax / grid-generator.scad
Created June 12, 2026 14:29
Grid generator script for producing unionized grid meshes from an STL file and gap pad meshes
// Generates a grid of body meshes with pad meshes between them.
// "Fence-post" pattern: N bodies get N-1 pads between them.
//
// STL files must be in the same directory as this script,
// or provide absolute paths.
//
// Pad STLs should have their geometry positioned in object-local
// coordinates so that when placed at the same grid points as the
// bodies, they naturally align into the gaps:
// - h_pad.stl: offset to bridge the horizontal gap
@haliphax
haliphax / BodyExport.FCMacro
Last active June 22, 2026 04:58
FreeCAD Macro - Export objects as STL/STEP
"""
BodyExport.FCMacro
Export each selected solid as both STEP and STL into the project file's directory.
Files are named: <project name> - <body name>.<extension>
If no solid objects are selected, top-level results are exported:
- PartDesign::Body objects (unless they are operands of a standalone
boolean result)
- Standalone boolean results (Part::Cut, Part::Fuse, Part::Common)
@haliphax
haliphax / stack.py
Last active July 29, 2026 02:44
STL generator for breakaway stacks
#!/usr/bin/env -S uv run --script
# /// script
# dependencies = ["numpy-stl"]
# ///
"""
This script is for creating stacks of more-or-less flat meshes that have
symmetrical top and bottom faces (e.g. Multiboard). The gap (default 0.2mm)
should be set to your slicer's layer height. The resulting file should be
printed with 3 walls, 15% infill, with ironing of all top surfaces enabled.
@haliphax
haliphax / gwskills.py
Last active January 28, 2026 07:12
Guild Wars Reforged skill template code parser
"""
Parse Guild Wars Reforged skill template codes
See https://wiki.guildwars.com/wiki/Skill_template_format for reference and
profession/attribute/skill indexes.
"""
# stdlib
from dataclasses import dataclass
from typing import Any, Generator
@haliphax
haliphax / random-string.js
Created October 30, 2023 21:17
generate random string
/** printable ASCII characters */
const ascii = [];
for (let i = 33; i <= 126; ascii.push(String.fromCharCode(i++)));
/** generate random string */
const randomString = limit => {
const result = [];
for (let i = 0; i < limit; i++) {
const index = Math.floor(Math.random() * (126 - 33) + 33);
@haliphax
haliphax / 11ty-transform-htmlMinify.ts
Created August 3, 2023 19:17
Eleventy - HTML and inline script minifier transform
import { UserConfig } from "@11ty/eleventy";
import { DOMParser } from "@xmldom/xmldom";
import { transform } from "esbuild";
import { minify } from "html-minifier";
/** cache for content of script tags with an ID */
const scriptCache = new Map<string, string>();
/** DOM parser for navigating the rendered document; warnings are ignored */
const parser = new DOMParser({ errorHandler: { warning: () => {} } });
@haliphax
haliphax / install-gitmoji-hook.sh
Last active September 11, 2023 04:55
Gitmoji CLI commit hook
#!/usr/bin/env bash
# install gitmoji as a commit hook
#
# - uses https://www.npmjs.com/package/gitmoji-cli
# - does not require global module installation
# - skips hook if message already starts with gitmoji
root="$(git rev-parse --show-toplevel)"
hook="$root/.git/hooks/prepare-commit-msg"

Keybase proof

I hereby claim:

  • I am haliphax on github.
  • I am haliphax (https://keybase.io/haliphax) on keybase.
  • I have a public key ASC0LFekXGTz3OedyiQZMCgD_CiApPRAvykdZJCJsqv5wgo

To claim this, I am signing this object: