Has anyone came across an open source scheduler? Swim lanes sila2 drivers etc. Maybe academics are working on such a thing?
I have interfaces for a few different pieces of equipment in Python, I suppose organizing these into a library would count as a scheduler? Often, equipment companies are very locked down about letting people build open-source interfaces to their equipment. They will give you the documentation to create an interface, but to get it you have to go through several of the following steps:
- Contact a sales or customer support rep over email and await a response
- Prove that you own the equipment by providing a serial number
- Provide the name of the organization you are working for that owns the equipment
- Sign an NDA to not release the API
This is to obtain documentation for the interface to a piece of equipment. I believe one of the moats that scheduling companies have is the license to distribute interfaces to equipment. Just owning the equipment and building your own interface does not always give you that right.
However, many companies have no restriction on providing interfaces or documentation to their equipment. One could easily build open-source interfaces to these (some of which I have done already) and package these into a scheduler. What equipment are you interested in?
Are you aware of sila2?
They have set up standardised interfaces for device drivers and tried to encourage vendors to support it. As you describe its not so easy to align incentives in industry in the same way midi did.
That of course is drivers but what im asking about here is schedulers like green button go or cellario. Im wondering if anyone has worked on an open source equivalent of something like that. Something that can hook
Into sila2 drivers (for which there are a number of things) or homebrew drivers (there is usually a way to work around :))
Many SiLA drivers are not free or open-source, so it is not possible to distribute an open-source scheduler that relies on these drivers.
My scheduling/ equipment orchestration is all done in Python. I just write a script that calls the different interfaces as needed, with logic implemented in Python. As far as I know, a scheduler is just an implementation of different device drivers with some control logic, so once you have drivers/ interfaces then you can use a typical programming environment to tie everything together with logic.
@Dovod I’m curious what the desire for an open source scheduler is? Cost / customizability / new features that aren’t present on the two you mentioned?
A few reasons i suppose.
Might be fun (especially in 3d with godot)
Open up repurposing or purchase of second hand equipment
Lower initial barrier of entry into space as can go full DIY
Allow you to do something with sila2 drivers.
I think initial costs of things like ELNs and LIMS mean that a lot of companies build with what they have available. Normally excel and lab benches with humans behind them!
Green button go scheduler can run SILA drivers. We offer a driver development training, but being a commercial product far from open source. We do try to empower our customers to do their own thing if that is what they want to do. We have some distributors and other customers that develop their own drivers to control devices in GBG.
would something like this be useful: (https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=162089cd47bcb1cada5da4f786281af9ffc78885)? I was part of a project back in 2012 where a custom scheduler was created using Petri Nets as a backbone to interface with a Precise arm, combi, and Envision plate reader.
There have been many efforts in the past to write open-source schedulers/executors for the lab environment; I am trying to figure out why they never took off (e.g. Aquarium from Doug Densmore)
From the recent efforts, I would reach out to these two projects:
- The SiLA 2 Manager by Lukas Bromig (he works at my former company UniteLabs now, not sure if they plan any open source efforts
- LabOP execution engine, they seem to have funding problems (on paper, it seems to tick all boxes, but isn’t accessible enough yet?)
Have you looked at these and other past projects yet?
SiLA 2 Manager seems really interesting, I’d love to learn more about that
Also, welcome to the forum Max!
No, these look exactly like what i am looking for thank you.
Although if something commercial and battle tested like unite labs open sourced their code like blender did originally did then things could really get interesting (despite being an unlikely outcome!)
I haven’t read the whole thread, but an open source SiLA2 based scheduler is what Stefan Maak, PhD student in the Kiwi biolab is working on: Team , might reach out to his mentor Mark Dörr if really interested . I am also involved in the LabOP project mentioned above, which aims to eventually involve scheduling functionality but isn’t there yet.