Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚀 Roadmap #41

Open
roaldarbol opened this issue Aug 15, 2024 · 5 comments
Open

🚀 Roadmap #41

roaldarbol opened this issue Aug 15, 2024 · 5 comments

Comments

@roaldarbol
Copy link
Owner

roaldarbol commented Aug 15, 2024

Alright, I think Bux can still be of use. But I would want a completely refactor, make it easier to maintain and use modern components.

Tool Summary

  • API: FastAPI
  • CLI: Typer
  • GUI: QT6, PyQt6/PySide6?
  • Registry: autoregistry
  • Cameras:
    • Webcams: OpenCV, OpenCV 5 is under development.
    • Raspberry Pi CSI cameras: picamera2
    • GoPro: Open GoPro
    • Wireless iPhone/Android cameras: OpenCV
    • ISP (surveillance) cameras: OpenCV
    • FLIR: Spinnaker SDK
  • Microcontrollers:
    • Micropython: Belay
    • Arduino: pyFirmata
  • Packaging: pixi and rattler-build
  • (Executable: Nuitka, but will stick to conda as long as I can)

Microcontrollers

I'll need to come up with a proper solution for how to integrate with Belay.

Cameras

I think the camera solution worked well, but a few things to consider:

  • More camera types should be supported long-term
  • Functions should be made separately for each camera type (e.g. GoPro, FLIR, iPhone, RPi CSI cams).
  • Instead of OpenCV and Picamera2, VidGear could be considered.
  • Expose as many settings as possible
@BrianPugh
Copy link

BrianPugh commented Aug 15, 2024

shameless self-plug; checkout my project Cyclopts for the CLI ;)

However, I've rarely actually used FastAPI; if Typer/FastAPI play nicer together (since they're both Tiangolo projects), then I'd say go for Typer.

Edit: also more self-plugs checkout my autoregistry for managing your camera-hooks. An example (with Belay) can be seen in my magnetometer project where I use autoregistry to manage my different magnetic-sensor-types.

@roaldarbol
Copy link
Owner Author

roaldarbol commented Aug 15, 2024

@BrianPugh Haha, great to see you here! You may have noticed I also just started a discussion on Belay 😂 I'm still not 100% sure I'll need FastAPI (it's been recommended to me, but I'm not really sure I see the need for myself) - so will definitely consider Cyclopts! autoregistry also really looks like something I could make use of! I'm assuming that oculd e.g. be good for having a registry of camera types/registered cameras?
Are they on conda-forge? I'm hoping to mostly rely on that rather than PyPi. I'm a big user of pixi, so can highly recommend that and rattler-build (until rattler-build becomes bundled into pixi).

@BrianPugh
Copy link

I'm assuming that could e.g. be good for having a registry of camera types/registered cameras?

Precisely; assuming that each camera needs custom data/methods/whatever, this is exactly what autoregistry was made for.

All my projects are on pypi; I'm not against publishing on conda-forge, I just never really investigated it. If it becomes a big blocker I could maybe investigate more.

@roaldarbol
Copy link
Owner Author

roaldarbol commented Aug 15, 2024

That sounds great, I'll add it to the list!

I could possibly help with that, come the time - I'm starting to get somewhat of a grip on how that works (I think...)😊

EDIT: Seems they're already on there:

So I guess you can add mamba install to your projects!

@roaldarbol
Copy link
Owner Author

Note to self, maybe it would be much simpler to make a napari plugin?! E.g. https://github.com/jacopoabramo/napari-live-recording already shows you can record, but is more focused on microscopy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants