Below are the major highlights in JupyterCAD
1.0.0
From 1.0.0, JupyterCAD
is split into multiple python and javascript packages, this makes deploying and extending JupyterCAD
easier.
- New python packages:
jupytercad-core
: package contains core plugins for worker registry, jcad file support, document tracker, and annotationjupytercad-lab
: package contains plugins for lab interface and notebook supportjupytercad-app
: the standaloneJupyterCAD
application
- New js packages:
@jupytercad/schema
: package contains the schema of the JCAD file and related models/interfaces@jupytercad/opencascade
: the custom opencascade.js build forJupyterCAD
@jupytercad/occ-worker
: the opencascade worker ofJupyterCAD
.@jupytercad/base
: package contains the UI components.
The current jupytercad
PYPI package is still available, but it has become a meta-package to facilitate the installation of the application. Users can continue to install JupyterCAD
with
pip install jupytercad
JupyterCAD
now provides multiple tokens to allow extending its features by using the JupyterLab
extension system. Users can register new file formats, register new operators, or add more post-processing capabilities to the application.
By using the new system, FreeCAD
file format is supported through an extension of JupyterCAD
, users can install it with
pip install jupytercad-freecad
JupyterCAD
now can render the geometries of a STEP file. More improvement in the interoperability of the STEP file will be added in future versions.
- Swap annotation and object properties panel #554 (@trungleduc)
(GitHub contributors page for this release)
@arjxn-py | @github-actions | @trungleduc | @tshakah
- Improve selection logic #542 (@martinRenou)
- Object properties panel: Use selected object name as the title #540 (@martinRenou)
- ClipPlane: fix z-fighting artifacts #539 (@martinRenou)
- Set visible back to True for operator inputs upon removal of the output #534 (@martinRenou)
- Allow opening JupyterCAD documents with the JSON viewer + Allow opening STL and STEP in JupyterLite #531 (@martinRenou)
- Grey icon in tabs #527 (@martinRenou)
- Reorder toolbar icons #522 (@arjxn-py)
- Update main logo #520 (@martinRenou)
- JupyterCAD icons to left and right tabs #519 (@martinRenou)
- Re-add
setColor
api #552 (@arjxn-py) - Prevent getting back to non-wireframe after operator #549 (@arjxn-py)
- Fix ui issues #548 (@trungleduc)
- Fix clip plane controls when switching camera projection #538 (@martinRenou)
- Revert "Orthographic camera: fix missing near and far parameters" #536 (@martinRenou)
- Fix context switching for the right panel #533 (@martinRenou)
- Update CAD app to include missing collaboration tokens #530 (@martinRenou)
- Set collaborative attribute to False in Jupyterlite #525 (@martinRenou)
- Cleanup and fix SVG logo #523 (@martinRenou)
- Fix bounding box on exploded view #521 (@arjxn-py)
- Fix handling of theme change #505 (@arjxn-py)
- Bump jupyter-collaboration v3 #553 (@trungleduc)
- Unpin jupyterlite-xeus in lite build #541 (@martinRenou)
- Pin Python in docs build #528 (@martinRenou)
- Pin Python in docs build #528 (@martinRenou)
(GitHub contributors page for this release)
@arjxn-py | @github-actions | @martinRenou | @SylvainCorlay | @trungleduc
- Smooth animated camera movement to center object #506 (@arjxn-py)
- Comparable Default Dimensions #501 (@arjxn-py)
- Fixed intensity & decay #515 (@arjxn-py)
- Fix lighting issue #514 (@arjxn-py)
- Fix clip plane color #513 (@martinRenou)
- Orthographic camera: fix missing near and far parameters #510 (@martinRenou)
- Fix clip plane color #508 (@martinRenou)
- Cadapp version #507 (@SylvainCorlay)
- Bump @jupyter/ydoc #516 (@trungleduc)
- Add
--no-occ-build
option #504 (@trungleduc) - Bump pydantic==2.9.2 for build #497 (@davidbrochart)
- Bump yjs-widgets>=0.3.7 #494 (@davidbrochart)
- Update jupyter-collaboration v3.0.0-beta.8 #472 (@davidbrochart)
- Remove unnecessary warning #470 (@trungleduc)
- Fix README comment about freecad #499 (@martinRenou)
- Streamline edge selection #498 (@arjxn-py)
- Use logarithmic depth buffer #495 (@martinRenou)
- refLength was not always updating #493 (@martinRenou)
- Handle zoom while camera change #492 (@arjxn-py)
- Exaggerate clip plane size #490 (@martinRenou)
- Prevent breaking aspect ratio on camera change #479 (@arjxn-py)
- Add clipping plane and exploded view icons #474 (@IsabelParedes)
- Bounding Box for Selection #473 (@arjxn-py)
- Fix breaking viewHelper while changing camera #469 (@arjxn-py)
- Add
logoicon
as tabicon #466 (@arjxn-py) - Button to Center view on visible objects #452 (@arjxn-py)
- Add all proposed Keyboard shortcuts #451 (@arjxn-py)
- Sync editor upon editor change #448 (@arjxn-py)
(GitHub contributors page for this release)
@arjxn-py | @davidbrochart | @github-actions | @IsabelParedes | @martinRenou | @SylvainCorlay | @trungleduc
- Add icons in filebrowser #460 (@martinRenou)
- Reactive toolbar w.r.t. width #455 (@arjxn-py)
- Improve the UX of the clip-plane and wireframe buttons #441 (@arjxn-py)
- Add interactive axes helper #440 (@arjxn-py)
- Include Notebook API into lite kernel deployment #364 (@martinRenou)
- Toggle buttons working correctly when multiple editors are open #447 (@arjxn-py)
- Update example for colors #437 (@arjxn-py)
- Fix lite build #436 (@martinRenou)
- Reduce field of view of Camera #465 (@arjxn-py)
- Rename launcher button #461 (@martinRenou)
- Try fixing galata workflow #439 (@arjxn-py)
- Lite deployment missing deps #434 (@martinRenou)
- Lite deployment: Disable docprovider-extension #433 (@martinRenou)
- Update
ThreeJS
#418 (@arjxn-py)
(GitHub contributors page for this release)
@arjxn-py | @github-actions | @martinRenou | @pre-commit-ci | @trungleduc
- Add jcad icon in the launcher #428 (@martinRenou)
- Use SharedModelFactory to create shared model #425 (@davidbrochart)
- Fix python api #422 (@trungleduc)
- Add link to playwright report in PR #430 (@trungleduc)
- Bump jupyter-collaboration v3 #429 (@davidbrochart)
- Fix metadata #424 (@davidbrochart)
- Correct artifact output #432 (@trungleduc)
- Save artifact data on failure #431 (@trungleduc)
(GitHub contributors page for this release)
@arjxn-py | @davidbrochart | @github-actions | @martinRenou | @trungleduc
- Fix dependencies pinning #420 (@martinRenou)
(GitHub contributors page for this release)
- Remove unneeded jupytercad_lab dependencies #417 (@martinRenou)
- Smart color handling for edges based upon mesh luminance #412 (@arjxn-py)
- Add Color Customization for JupyterCAD Models #397 (@arjxn-py)
- Enable Damping for Smoother Model Movement #395 (@arjxn-py)
- Add python console to 3D view #392 (@trungleduc)
- Enable Toggling Wireframe View #390 (@arjxn-py)
- Position & Axis inputs in a row #389 (@arjxn-py)
- Delete Object Keyboard Shortcut #388 (@arjxn-py)
- Improve shape metadata update logic #385 (@trungleduc)
- Implement
Undo
&Redo
keyboard shortcuts #382 (@arjxn-py)
- Fix jupyterlite deployment #409 (@trungleduc)
- Little darker shade of color for edges #408 (@arjxn-py)
- Replace toggle wireframe button to the right #405 (@arjxn-py)
- Fix python console in the standalone app #402 (@trungleduc)
- Delete parent object if edge is selected with
[Delete]
key binding #393 (@arjxn-py)
- Try fixing the upload of Github pages #416 (@martinRenou)
- Exclude node_modules from sdists #415 (@martinRenou)
- Update yjs-widgets dependency + make it shared #414 (@martinRenou)
- Remove the guidata option #413 (@arjxn-py)
- Save jupyterlite build artifact #404 (@trungleduc)
- Preview PR using appsharing.space #403 (@trungleduc)
- Try fixing bot to update snapshots #401 (@arjxn-py)
- Fix bot to update snapshots #400 (@arjxn-py)
- Fix bot behaviour to update snapshots #398 (@arjxn-py)
- Bump ypywidgets v0.9 #387 (@davidbrochart)
- #78 Re-enable
jupyterlab.browser_check
#386 (@arjxn-py) - Fix code format #383 (@trungleduc)
(GitHub contributors page for this release)
@arjxn-py | @davidbrochart | @github-actions | @martinRenou | @pre-commit-ci | @SylvainCorlay | @trungleduc
- Pin reacttrs #380 (@martinRenou)
(GitHub contributors page for this release)
@arjxn-py | @github-actions | @martinRenou
- Fix rendering stl and step files #377 (@trungleduc)
(GitHub contributors page for this release)
- Edge operators #340 (@martinRenou)
- Implement clipping #333 (@martinRenou)
- Support JupyterLite #331 (@trungleduc)
- Support for opening STL files #246 (@martinRenou)
- Step file export to .jcad #238 (@martinRenou)
- Improve post-processing system #350 (@trungleduc)
- Error handling #349 (@martinRenou)
- Add constraints to form schema #362 (@trungleduc)
- Generate dropdowns for operands on operator properties #371 (@martinRenou)
- Improve deletion behavior #369 (@martinRenou)
- Remove y-py #329 (@trungleduc)
- Jupyter Collaboration v2 #239 (@martinRenou)
- Fix build shape from brep string #334 (@trungleduc)
- Sync jupytercad_* version #375 (@trungleduc)
- Unpin ajv #374 (@martinRenou)
(GitHub contributors page for this release)
@github-actions | @martinRenou | @trungleduc
- Generate dropdowns for operands on operator properties #371 (@martinRenou)
- Improve deletion behavior #369 (@martinRenou)
- Add constraints to form schema #362 (@trungleduc)
- Workaround extruction non-solid issue #373 (@martinRenou)
- Fix extrusion form defaults #368 (@martinRenou)
- Fix dry-run logic so that it does not run on the first load of the file #366 (@martinRenou)
- Update github URL #365 (@trungleduc)
(GitHub contributors page for this release)
@github-actions | @martinRenou | @SylvainCorlay | @trungleduc
- Error handling #349 (@martinRenou)
- Notebook API: Fix remove method #359 (@martinRenou)
- Pin ajv #360 (@trungleduc)
(GitHub contributors page for this release)
@github-actions | @martinRenou | @pre-commit-ci | @trungleduc
- Update jcad exporting mechanism #355 (@trungleduc)
- Fix wrong emitter id of select object action #354 (@trungleduc)
(GitHub contributors page for this release)
- Update 3D rendering logic #353 (@trungleduc)
- Update 3D rendering logic #353 (@trungleduc)
(GitHub contributors page for this release)
(GitHub contributors page for this release)
- Improve post-processing system #350 (@trungleduc)
- Wider edge operators support #348 (@martinRenou)
(GitHub contributors page for this release)
@github-actions | @martinRenou | @trungleduc
No merged PRs
- Add chamfer and fillet icons #342 (@IsabelParedes)
- Edge operators #340 (@martinRenou)
- Implement clipping #333 (@martinRenou)
- Update svg files #338 (@trungleduc)
- Fix build shape from brep string #334 (@trungleduc)
- Visual regression tests: Increase cell execution timeout #347 (@trungleduc)
- Refactor 3D view #341 (@trungleduc)
- Close warning before starting the UI test #336 (@trungleduc)
(GitHub contributors page for this release)
@github-actions | @IsabelParedes | @martinRenou | @trungleduc
- Update JupyterLite config #332 (@trungleduc)
- Support JupyterLite #331 (@trungleduc)
- Update occ API #330 (@trungleduc)
- Support for opening STL files #246 (@martinRenou)
- Remove y-py #329 (@trungleduc)
(GitHub contributors page for this release)
@github-actions | @martinRenou | @trungleduc
- Step file export to .jcad #238 (@martinRenou)
- Unpin jupyterlab in ui-tests #251 (@martinRenou)
(GitHub contributors page for this release)
@github-actions | @martinRenou | @pre-commit-ci | @trungleduc
- Jupyter Collaboration v2 #239 (@martinRenou)
(GitHub contributors page for this release)
- Pin JupyterLab in publish release #254 (@martinRenou)
- Expose CadDocument from jupytercad #252 (@martinRenou)
- Missing util #255 (@martinRenou)
- Fixing check-release workflow + Fix regression tests #250 (@martinRenou)
(GitHub contributors page for this release)
@github-actions | @martinRenou
- Don't show properties panel for readonly files #245 (@martinRenou)
- Add changelog #247 (@trungleduc)
(GitHub contributors page for this release)
@github-actions | @martinRenou | @trungleduc
- Support loading STL binary format #244 (@trungleduc)
(GitHub contributors page for this release)
@github-actions | @pre-commit-ci | @trungleduc
- Non-editable step file #235 (@martinRenou)
- Update worker and 3D viewer #230 (@trungleduc)
- Fix object selection #242 (@trungleduc)
(GitHub contributors page for this release)
@github-actions | @martinRenou | @trungleduc
- STEP files support #232 (@martinRenou)
- Galata bot: Missing hub command #233 (@martinRenou)
- Fix missing dev dependency #231 (@martinRenou)
- Galata bot: Fix conda env #234 (@martinRenou)
(GitHub contributors page for this release)
@github-actions | @martinRenou | @pre-commit-ci | @trungleduc
- Rename packages #228 (@trungleduc)
(GitHub contributors page for this release)
- Organization rename #225 (@martinRenou)
- Update OCC build #221 (@martinRenou)
- Create jupytercad-* packages #220 (@trungleduc)
- Pin pydantic (again) #222 (@martinRenou)
- Update release script #227 (@trungleduc)
- Fix CI #226 (@trungleduc)
- Create jupytercad-* packages #220 (@trungleduc)
- Update links to repository #219 (@martinRenou)
- Support pydantic 2 #213 (@trungleduc)
(GitHub contributors page for this release)
@github-actions | @martinRenou | @pre-commit-ci | @trungleduc
- Allow changing camera settings #204 (@martinRenou)
- Fix check release #205 (@martinRenou)
- Add conda instructions #202 (@martinRenou)
(GitHub contributors page for this release)
@github-actions | @martinRenou | @trungleduc
- Remove guidata when deleting an object #201 (@martinRenou)
(GitHub contributors page for this release)
- Add yjs-widgets to the shared scope #199 (@trungleduc)
(GitHub contributors page for this release)
- Add annotation and color API #198 (@trungleduc)
- Update to latest ypywidgets #194 (@martinRenou)
- Compute shape properties #193 (@trungleduc)
- Add Jupyverse plugin #179 (@davidbrochart)
- Fix fuse and intersection operator #197 (@trungleduc)
- Hide FreeCAD import message #187 (@trungleduc)
- Remove mock setting in Galata tests #188 (@trungleduc)
- Add docs link in the README #190 (@martinRenou)
- Add some documentation #169 (@martinRenou)
(GitHub contributors page for this release)
@davidbrochart | @github-actions | @martinRenou | @pre-commit-ci | @trungleduc
- Missing dependencies #184 (@martinRenou)
(GitHub contributors page for this release)
- Update shared scope #182 (@trungleduc)
(GitHub contributors page for this release)
- Fix missing static files in cad app #181 (@trungleduc)
- NPM Package version fix #173 (@martinRenou)
- Simplify bump version script #178 (@martinRenou)
- Fix file paths in Notebook.ipynb #176 (@davidbrochart)
- Add releaser action and pre-commit config #172 (@trungleduc)
- Add docstrings #177 (@martinRenou)
(GitHub contributors page for this release)
@davidbrochart | @github-actions | @martinRenou | @trungleduc
- Add backend installation check #168 (@trungleduc)
- Improve cache mechanism #164 (@trungleduc)
- Add shadow to annotation boxes #163 (@trungleduc)
- Python API #162 (@martinRenou)
- Remove shadowmapping #159 (@martinRenou)
- Improve lighting #158 (@trungleduc)
- Remove gradient background #150 (@martinRenou)
- Multi selection #145 (@martinRenou)
- Add top menu and launcher #140 (@trungleduc)
- Fixup visibility checking #161 (@martinRenou)
- Fix Notebook API view #160 (@martinRenou)
- Fix: prevent selecting invisible mesh #155 (@martinRenou)
- Fix broken SVG #153 (@martinRenou)
- Install python-occ core on galata bot #167 (@martinRenou)
- Update jupyter_collaboration dependency #166 (@martinRenou)
- Fix galata bot #152 (@martinRenou)
- Install jupyter_collaboration on the Galata bot #165 (@martinRenou)
- Update screenshot #156 (@trungleduc)
(GitHub contributors page for this release)
@github-actions | @martinRenou | @trungleduc
No merged PRs
No merged PRs
- Update to JupyterLab 4 #147 (@martinRenou)
- Simplify annotations update #146 (@martinRenou)
- Update annotations position on resize #143 (@martinRenou)
- Default shape/operator names #141 (@martinRenou)
- Lab app #135 (@trungleduc)
- Toolbar refactor and styling #129 (@martinRenou)
- Update annotations position on resize #143 (@martinRenou)
- Update to JupyterLab 4 #147 (@martinRenou)
- Create monorepo #133 (@trungleduc)
(GitHub contributors page for this release)
@github-actions | @martinRenou | @trungleduc
- Hide source objects after executing operators #117 (@trungleduc)
- Expose JupyterCad 3d view and APIs in notebook #102 (@trungleduc)
- Update to JupyterLab beta 2 #130 (@trungleduc)
- Update to JupyterLab beta 0 #119 (@martinRenou)
(GitHub contributors page for this release)
@github-actions | @martinRenou | @trungleduc
- Exploded view #109 (@martinRenou)
- Add launcher buttons #108 (@hbcarlos)
- Only compute the bounding box of the visible objects for the reflength #105 (@martinRenou)
- Improve performance #104 (@martinRenou)
- Add extrusion #98 (@trungleduc)
- Toolbar for configuring the grid and axes #94 (@hbcarlos)
- FCstd color support #91 (@martinRenou)
- Automatically remove annotations when they are empty #86 (@martinRenou)
- Annotations: Change remove button to a close button #84 (@martinRenou)
- Update build occ command #80 (@trungleduc)
- 2D Editor #76 (@trungleduc)
- Use theme for the annotation styling #62 (@martinRenou)
- Take into account the current user for message displaying #61 (@martinRenou)
- Support for undo/redo #60 (@hbcarlos)
- Decouple camera from remote user camera #59 (@martinRenou)
- Automatically rebuild open cascade when needed #56 (@martinRenou)
- Build OpenCascade when building the Worker #54 (@martinRenou)
- Custom Open Cascade build #40 (@martinRenou)
- Follow mode #32 (@trungleduc)
- Display and sync pointers between clients #29 (@martinRenou)
- Render unsupported shape types in read-only mode. #28 (@trungleduc)
- Highlight differently the mesh that is hovered AND selected #27 (@martinRenou)
- Cleanup selection logic and throttle some events #107 (@martinRenou)
- Fix bot for updating galata references #106 (@martinRenou)
- Fixes selections #103 (@hbcarlos)
- Toolbar for configuring the grid and axes #94 (@hbcarlos)
- Remove malformed form button #88 (@martinRenou)
- Do not reset the grid and axe when the scene is empty #83 (@hbcarlos)
- Hot fix occ build #81 (@trungleduc)
- Fix intersection name #57 (@martinRenou)
- Pointer color fix #39 (@martinRenou)
- Fix minor pointer issues. #30 (@trungleduc)
- Handle de-select when selecting a non-visible object #26 (@martinRenou)
- Remove
pip install -e .
step in the check release workflow #116 (@jtpio) - Pin JupyterLab #115 (@martinRenou)
- Prepare for release #114 (@martinRenou)
- Pin JupyterLab #113 (@martinRenou)
- Fix ci #97 (@trungleduc)
- Add galata bot #96 (@trungleduc)
- Uses hatch and update releaser #90 (@hbcarlos)
- Fix binder #87 (@trungleduc)
- Introduce jupytercad-opencascade separate package #85 (@martinRenou)
- Add UI tests #73 (@trungleduc)
- Update README #112 (@martinRenou)
- Update readme #111 (@trungleduc)
- Fix CI #77 (@trungleduc)
- Fixes objects tree view #75 (@hbcarlos)
- Annotations panel #74 (@martinRenou)
- Fixes 51 #72 (@hbcarlos)
- Fixes iterable #71 (@hbcarlos)
- Types the API and hides Y data structures #68 (@hbcarlos)
- Migrate to @jupyter/ydoc and fix observe #67 (@hbcarlos)
- Remove "getCoordinate" from the Annotation Model #65 (@martinRenou)
- Fix: reset state when unfollowing #58 (@martinRenou)
- Add intersection operator #55 (@davidbrochart)
- Add fuse operator #53 (@davidbrochart)
- Prevent updating refLength on each remove/hide #52 (@martinRenou)
- Put back logic for syncing pointers #42 (@martinRenou)
- Fix missing FS and symbol #41 (@martinRenou)
- Add annotation #33 (@trungleduc)
- add conda-forge/label/jupyterlab_alpha for binder #25 (@bollwyvl)
- Mesh selection #24 (@trungleduc)
- Update tree view #23 (@trungleduc)
- Add
@jupyterlab/shared-models
to thepackage.json
#22 (@jtpio) - Revert "Use THREE.LineSegments instead of THREE.Line for edges" #19 (@martinRenou)
- Use rjsf's JupyterLab theme #18 (@martinRenou)
- Add Torus #15 (@martinRenou)
- Add Sphere and Cone primitives #14 (@martinRenou)
- Improve theme handling 3D view and tree view #10 (@martinRenou)
- Use THREE.LineSegments instead of THREE.Line for edges #9 (@martinRenou)
- Implement highlight on hover using a Color Picking technique #8 (@martinRenou)
- Fix invisible logo for dark theme #6 (@martinRenou)
- Support boolean operator #5 (@trungleduc)
- Add support for FreeCAD native file format #4 (@trungleduc)
- Add JCAD file #3 (@trungleduc)
- Add shared model #2 (@trungleduc)
- Add dark background and loading animation #1 (@trungleduc)
(GitHub contributors page for this release)
@bollwyvl | @davidbrochart | @github-actions | @hbcarlos | @jtpio | @martinRenou | @trungleduc