3.0.0
Highlights
Python console for the 3D view
There is now an embdedded Python console that the user can open next to the 3D view in order to interact with the current document. #392 (@trungleduc)
Color customization
Users can now customize the shapes colors. #397 (@arjxn-py)
UX improvements
There have been many UX improvements done, mainly:
- Added keyboard shorctuts for all CAD operations #451 (@arjxn-py)
- Improved toolbar interactions (@arjxn-py)
- Added Axes Helper in the 3D view #440 (@arjxn-py)
- Added copy/pasting support #624 (@arjxn-py)
- Camera movement upon object selection #506 (@arjxn-py)
- Show hidden shape in transparency upon selection #587 (@martinRenou)
And many more! See the detailed logs.
3D controls
Add mouse controls for interactively modifying objects position/rotation. #529 (@arjxn-py)
Suggestions
JupyterCAD now supports suggestions from collaborators. This feature is only available if using pip install "jupyter-collaboration>=3.1.0rc0"
. #579 (@trungleduc)
Detailed logs
Enhancements made
- Improve file validation warning message #641 (@martinRenou)
- JupyterLite: Do not hard fail on invalid file format + add examples #639 (@martinRenou)
- Improve primitive properties description #630 (@martinRenou)
- Add labels to viewHelper #628 (@arjxn-py)
- Copy & Paste objects #624 (@arjxn-py)
- Introducing file versioning #623 (@martinRenou)
- Rotation Controls #603 (@arjxn-py)
- Improve placement info + missing "degrees" info #602 (@martinRenou)
- Add commands to command palette #598 (@martinRenou)
- Disable transform control for readonly files #594 (@martinRenou)
- Add transform icon #593 (@IsabelParedes)
- Add stl and stp icons #591 (@IsabelParedes)
- Show selection in transparency for non-visible objects #587 (@martinRenou)
- Add suggestion panel #579 (@trungleduc)
- Enable toggling transform controls #578 (@arjxn-py)
- Perform a dry run for transforms #575 (@martinRenou)
- Allow transforming objects when clipping is enabled #565 (@martinRenou)
- Swap annotation and object properties panel #554 (@trungleduc)
- 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)
- Add Translation Controls #529 (@arjxn-py)
- 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)
- Smooth animated camera movement to center object #506 (@arjxn-py)
- Comparable Default Dimensions #501 (@arjxn-py)
- Use logarithmic depth buffer #495 (@martinRenou)
- Handle zoom while camera change #492 (@arjxn-py)
- Add clipping plane and exploded view icons #474 (@IsabelParedes)
- Bounding Box for Selection #473 (@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)
Bugs fixed
- Missing pydantic dependency in jupytercad-core #636 (@martinRenou)
- Handle file renaming in panels #622 (@martinRenou)
- No transform controls when exploded view is enabled #616 (@martinRenou)
- Do not show the transform if there is no current selection #615 (@martinRenou)
- Fix selection of newly created objects in the 3D view #614 (@martinRenou)
- Transform controls: undo positioning upon failure #610 (@martinRenou)
- Allow exporting .stl to .jcad #604 (@martinRenou)
- Fix missing placement for STL & STEP Files #600 (@arjxn-py)
- Expand undo_manager scope #581 (@trungleduc)
- Add a min-height to the toolbar separator #577 (@brichet)
- Bug fix: Prevent tree from wrongly updating the selection #571 (@martinRenou)
- Fix selection logic #569 (@martinRenou)
- Fix initial selected edges color #566 (@martinRenou)
- Fix selection through clip plane #564 (@martinRenou)
- Make selection logic smoother #563 (@arjxn-py)
- Do not update the camera position automatically for single object scene #559 (@martinRenou)
- Refactor Bounding Box Logic #555 (@arjxn-py)
- 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)
- 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)
- Fix handling of theme change #505 (@arjxn-py)
- Streamline edge selection #498 (@arjxn-py)
- refLength was not always updating #493 (@martinRenou)
- Exaggerate clip plane size #490 (@martinRenou)
- Prevent breaking aspect ratio on camera change #479 (@arjxn-py)
- Sync editor upon editor change #448 (@arjxn-py)
- Fix breaking viewHelper while changing camera #469 (@arjxn-py)
- Toggle buttons working correctly when multiple editors are open #447 (@arjxn-py)
- Fix lite build #436 (@martinRenou)
- Correct artifact output #432 (@trungleduc)
- Fix python api #422 (@trungleduc)
- Fix jupyterlite deployment #409 (@trungleduc)
- Fix python console in the standalone app #402 (@trungleduc)
Maintenance and upkeep improvements
- Update UI-tests snapshots #589 (@martinRenou)
- Add test for exploded view #584 (@arjxn-py)
- Add test for rotated shape #583 (@arjxn-py)
- Undo opencascade positioning and rotation #580 (@arjxn-py)
- Introduce IMouseDrag interface #570 (@martinRenou)
- Bump jupyter-collaboration v3 #553 (@trungleduc)
- Unpin jupyterlite-xeus in lite build #541 (@martinRenou)
- Pin Python in docs build #528 (@martinRenou)
- 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)
- 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)
- Add link to playwright report in PR #430 (@trungleduc)
- Bump jupyter-collaboration v3 #429 (@davidbrochart)
- Fix metadata #424 (@davidbrochart)
- Fix dependencies pinning #420 (@martinRenou)
- Update
ThreeJS
#418 (@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)
- 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)
- Save artifact data on failure #431 (@trungleduc)
- Add jcad icon in the launcher #428 (@martinRenou)
- Use SharedModelFactory to create shared model #425 (@davidbrochart)
- Remove unneeded jupytercad_lab dependencies #417 (@martinRenou)
- Smart color handling for edges based upon mesh luminance #412 (@arjxn-py)
- Little darker shade of color for edges #408 (@arjxn-py)
- Replace toggle wireframe button to the right #405 (@arjxn-py)
- Add Color Customization for JupyterCAD Models #397 (@arjxn-py)
- Enable Damping for Smoother Model Movement #395 (@arjxn-py)
- Delete parent object if edge is selected with
[Delete]
key binding #393 (@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) - Include Notebook API into lite kernel deployment #364 (@martinRenou)
Documentation improvements
- Add more examples #635 (@arjxn-py)
- Update README - mention "collaborative" in the title #633 (@martinRenou)
- Update README screenshot #632 (@martinRenou)
- More examples #631 (@martinRenou)
- Fix empty README issue on PyPi #626 (@martinRenou)
- Fix typo in comment-on-pr.yml #556 (@tshakah)
- Pin Python in docs build #528 (@martinRenou)
- Fix README comment about freecad #499 (@martinRenou)
- Remove non-relevant steps #421 (@arjxn-py)
- Contributing Guide in
.rst
#381 (@arjxn-py) - Update example for colors #437 (@arjxn-py)
Contributors to this release
(GitHub contributors page for this release)
@arjxn-py | @brichet | @davidbrochart | @github-actions | @IsabelParedes | @martinRenou | @pre-commit-ci | @SylvainCorlay | @trungleduc | @tshakah