Introduction to ProcessScheduler

edited May 4 in General

I started a new project 6 months ago to automate the creation of work schedules. The purpose is to compute one (many) schedule(s) from a set of inputs: tasks, resources, and a set of constraints over tasks and resources. This is a well-known issue, but the idea of this new project is to use a SAT/SMT solver to perform the computation, which allows much more expressive constraints than usual linear or nonlinear programming algorithms. ProcessScheduler is a free and open-source python library, hosted at It is still in an early development stage, but there's now enough material to get feedback from the community.

The project does not address specifically the building industry, but I noticed some recent developments at blenderbim on work plans/work schedules. I do believe there might be opportunities on both sides to make our work converge, and let new ideas raise up.

We planned a video call with Dion Moult, for a 30mn introduction/demo. We agreed on next Thursday (May 6), 10am Paris Hour (6pm Sidney hour). I will post later the link to this meeting so that anyone interested can freely join in.



  • The material presented during the meeting is available at Can be tested online at (a set of Jupyter notebooks demonstrating basic features)

  • The presentation was absolutely amazing. I highly recommend @SigmaDimensions and @iosvarms and @walpa to check it out. I also honestly think that we are quite close to being able to begin an integration with a Blender UI and the IFC dataset. There are a few things still to resolve on the IFC end like schedules of rates and resource types as well as task types, but these are quite straightforward.

  • Unfortunatelly I couldn't make it on time to the presentation. Has it been recorded?

  • @Aldo No, it was not. I propose to give another presentation in the coming weeks, for example in an OSArch monthly meetup, or somewhere else, it depends on the community feedbacks.

    @Moult There can also be an effort on the ProcessScheduler side to provide a specialization of the data model that is closer to the IFC semantics

  • edited May 7

    @tpaviot, @Moult - sorry! I missed to see this in time.
    @tpaviot : your approach to deriving a schedule is extremely interesting - and as @Moult said, with all the IFC entites implemented very soon (which relate to the inputs used in in ProcessScheduler to derive a schedule), I believe it would be a good idea to integrate it with Blender's UI and the IFC data pipeline implemented with blenderBIM.

    I'd be happy to see a demonstration to make sure I'm understanding things correctly. We can organise when/how to kick things off in the Monthly meet-up tomorrow, or set-up a specific meeting for this? Either way, I would be very delighted to see this take shape!

  • @SigmaDimensions I'm sorry I did not book the slot, I cannot attend the meeting tonight (actually I recently discovered there are monthly meetings). I would enjoy giving you a demonstration, it would be perfect for me next Monday/Tuesday/Wednesday, let me know if it suits you.

  • That would be superb @tpaviot !
    I can do any of those days from 8 PM UTC+ onwards, which may be a bit unpractical for you.
    Instead may I suggest week starting 17th May? Monday/Tuesday/Wednesday 10am Paris Hour (6pm Sidney hour)?

    ping @Aldo @walpa @iosvarms @duncan @stephen_l @bitacovir @Moult @Jesusbill @brunopostle @LaurensJN @baswein @rbertucat
    I can attempt to record this session in case you cannot join us? ( If that's OK with you @tpaviot, of course)

  • @SigmaDimensions ok for next week, I will tell you tomorrow my availabilities. No problem for recording the meeting.

  • I spent a bit of time on this today and was able to get it up and running on my machine very easily, nice work! In terms of mapping, tasks correspond to IfcTask, and workers correspond to IfcResources. Precedence constraints correspond to IfcRelSequence. However, we have not yet built enough relationships to complete the rest of the mapping, so building those relationships will have to come first.

    I have presented it to the scheduling team at my company and are looking at trying out some simple but realistic examples agnostic of IFC first to see how useful it is when applied to the questions they usually have to ask. For example, I am told that excavators are not usually the limiting resource nor considered for digging holes. It's usually the trucks you can get in and out of the site. I'll discuss further with them to try and create a simple example, and post here with my progress.

  • @Moult Thank you for this interesting feedback. Also, note that the project is still in beta status and quickly evolves from a release to the other (on one side of the balance: new features and fixes, on the other side: API changes). The documentation is kept synced with all these changes, you can trust
    The excavator use case was improvised for our last call, people from the scheduling business must have laughed. Anyway, it's good if they can help you provide a more accurate example.
    At last, although I try to make the API the most readable it can be, going from a real case scheduling problem to the model treated by ProcessScheduler requires IMO a good understanding of all the Tasks, Resources, their derivatives, and how they can be used all together. Indeed, there are different ways to represent a problem. Any feedback regarding this topic is welcome.

  • @SigmaDimensions Is Monday 17th May/10 am Paris hour ok for you?

  • @SigmaDimensions as you do construction sequencing as a job, would you be able to come up with some examples of real life problems that the process scheduler could help solve? Then you can work with @tpaviot to see if it can be described with his API?

  • @SigmaDimensions Could you please confirm the slot for Monday morning?

  • @Moult: I'm getting a few ideas after we've looked at the notebook examples, but haven't played with the code yet;
    @tpaviot : Perfect - Monday 17th at 10AM Paris is good with me!

Sign In or Register to comment.