Encode / decode OpenSCAD Web (openscad2) share links of the form:
https://ochafik.com/openscad2/#...
This module works in Web (modern browsers) and Deno with ES modules only (no Node-specific APIs).
openscad2 stores a “session” JSON object in the URL fragment:
JSON.stringify(session)- UTF-8 encode
- gzip
- Base64
- append after
#
This library implements that pipeline in both directions.
import { OpenSCAD } from "https://code4fukui.github.io/openscad2-url/OpenSCAD.js";
const scad = `cube([10, 10, 10]);`;
const url = await OpenSCAD.encodeToURL(scad);
console.log(url);
// https://ochafik.com/openscad2/#H4sIA...import { OpenSCAD } from "https://code4fukui.github.io/openscad2-url/OpenSCAD.js";
const session = {
// your openscad2-like session object
};
const url = await OpenSCAD.encodeToURL(session);import { OpenSCAD } from "https://code4fukui.github.io/openscad2-url/OpenSCAD.js";
const data = await OpenSCAD.decodeFromURL("https://ochafik.com/openscad2/#H4sIA...");
console.log(data);You can also pass only the fragment:
const data = await OpenSCAD.decodeFromURL("#H4sIAAAAA...");MIT