Fork of openscad/openscad-playground with CMMS embedding hooks for the AI Assistant module (see /opt/DB CLAUDE.md).
  • CSS 70.6%
  • TypeScript 25.2%
  • JavaScript 3.2%
  • HTML 0.8%
  • OpenSCAD 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2023-03-26 08:39:41 +01:00
public Gooood progress 2023-03-26 07:48:04 +01:00
src Fix line skipping in markers processing 2023-03-26 08:34:28 +01:00
.gitignore Gooood progress 2023-03-26 07:48:04 +01:00
fonts.conf Basic React + TypeScript app skeleton + downloading of deps 2023-03-24 01:58:25 +00:00
inline-openscad-worker.ts Basic React + TypeScript app skeleton + downloading of deps 2023-03-24 01:58:25 +00:00
LICENSE.md fork me on github ribbon + model refactor 2023-03-25 15:56:21 +00:00
LICENSE.monaco Licenses 2023-03-24 01:02:41 +00:00
LICENSE.viewstl Licenses 2023-03-24 01:02:41 +00:00
Makefile Switch to webpack 2023-03-25 19:30:34 +00:00
openscad-worker.rollup.config.js Switch to webpack 2023-03-25 19:30:34 +00:00
package.json widgets, file size and elapsed time 2023-03-25 20:41:16 +00:00
README.md Update README.md 2023-03-26 08:39:41 +01:00
tsconfig.json Switch to webpack 2023-03-25 19:30:34 +00:00
webpack.config.js Gooood progress 2023-03-26 07:48:04 +01:00

OpenSCAD Playground

Open the Demo

This is a WIP revamp of https://ochafik.com/openscad.

Licenses: see LICENSES.

Features

  • Automatic preview on edit (F5), and full rendering on Ctrl+Enter (or F6). Using a trick to force $preview=true.
  • Syntax highlighting
  • Ships with many standard SCAD libraries (can browse through them in the UI)
  • Autocomplete of imports
  • Autocomplete of symbols / function calls (pseudo-parses file and its transitive imports)
  • Responsive layout (but editing on iOS is still a pain, will address that soon). On small screens editor and viewer are stacked onto each other, while on larger screens they can be side-by-side

Roadmap

  • Drag and drop of files (SCAD, STL, etc) and Zip archives. For assets, auto insert the corresponding import.
  • Proper PWA w/ File opening / association to *.scad files
  • Setup OPENSCADPATH env var w/ Emscripten.
  • Customizer support. Probably by adding --export-json or --export-format=customizer-json to OpenSCAD.
  • Mobile (iOS) editing support: switch to https://www.npmjs.com/package/react-codemirror ?
  • Proper Preview rendering: have OpenSCAD export the preview scene to a rich format (e.g. glTF, with some parts being translucent when prefixed w/ % modifier) and display it using https://modelviewer.dev/ maybe)

Building

Prerequisites:

  • wget
  • GNU make
  • npm

Local dev:

make public
npm start
# http://localhost:4000/

Local prod (test both the different inlining and serving under a prefix):

make public
npm run start:prod
# http://localhost:3000/dist/

Deployment (edit "homepage" in `package.json` to match your deployment root!):

```bash
make public
npm build

rm -fR ../ochafik.github.io/openscad2 && cp -R dist ../ochafik.github.io/openscad2 
# Now commit and push changes, wait for site update and enjoy!