Skip to content

uetchy/cadmio

Repository files navigation

Logo

Cadmio

Cadmio is a new way of "writing" a 3D model. It offers familiar JSX syntax that is transpiling into OpenJSCAD.

Users beware: Cadmio is under the alpha stage. Many APIs are missing. Please do not attempt to deploy it on your production environment unless you are fully aware of what it means.

πŸ“¦ Install

Install cadmio via npm.

npm install -g cadmio

πŸš€ How to Use

Workflow

Write your 3D model and save it as logo.jsx.

import Cadmio, { Union, Difference, Intersection, Cube, Sphere } from 'cadmio';

const OpenJSCADLogo = (
  <Union>
    <Difference>
      <Cube size={3} center={true} />
      <Sphere r={2} center={true} />
    </Difference>
    <Intersection>
      <Sphere r={1.3} center={true} />
      <Cube size={2.1} center={true} />
    </Intersection>
  </Union>
);

const Logo = Cadmio.create(
  'Union',
  Cadmio.create('Difference'),
  Cadmio.create('Difference'),
);

export default Cadmio.render(Logo);

Compile logo.jsx with cadmio command.

cadmio -f stl -o ./logo.stl ./logo.jsx

Now you got logo.stl!

Contributing

PRs welcome!

Contributors ✨

Thanks goes to these wonderful people (emoji key):


uetchy

πŸ’» πŸ“–

Sora Morimoto

πŸ’»

This project follows the all-contributors specification. Contributions of any kind welcome!