Group Abstract Group Abstract

Message Boards Message Boards

Looking for help cleaning up a Mathematica notebook into a reference implementation

TL;DR I'm looking for someone to refactor a Mathematica notebook I've got from a fellow researcher so I can use it as a reliable reference implementation. I expect it's a few hours of work for the right person. I can offer financial compensation and/or my own technical expertise.

Hello Wolfram community!

I hope this is the right place for this kind of request. If not, my apologies!

I'm a PhD student in the final stage of my project, an attempt at closed-loop control of water jets from firefighting robots using UAV imagery as feedback. The controller design is based on the Smith predictor architecture, which requires a predictive model to compensate for the long dead time of the system. Accurately predicting the trajectory of water jets is far from trivial. One of the most promising models I could find is described in https://link.springer.com/article/10.1007/s10694-021-01175-1. The model is formulated as a system of ordinary differential equations.

I tried implementing it in Python so I can integrate it with my other components. It's almost complete, but despite several months of debugging I haven't been able to resolve the remaining issues. So I contacted the corresponding author. They confirmed some errors I found in the printed versions of the equations, and kindly provided their original Mathematica implementation. This helped, but my own implementation is still incomplete. The issues could stem from additional errors in the printed equations I/we haven't found yet, mistakes in my implementation, or differences in solver behavior (Mathematica's vs. SciPy's solve_ivp() function).

Unfortunately, the notebook is hard for me to follow and differs quite a bit from the published paper (structure, variable naming, angle conventions, etc.). I've never worked with Mathematica and don't have the time nor patience to properly learn it before my deadline.

The author is currently unable to provide further support, but since I'm getting more and more desperate to finish this subproject, I'm now seeking third-party help. I'm looking for someone to refactor the notebook into a clean, well-structured reference implementation. Specifically, I'd like them to

  • remove unused and redundant code (many expressions are duplicated)
  • improve structure
  • improve documentation
  • add small quality-of-life improvements if appropriate
  • flag any noticeable discrepancies

The refactored version must reproduce the original results, in particular the figures shown in the paper. Ideally, it should make it easy to experiment with the equations and parameters. One specific goal is to verify whether the rearranged equation forms I use in Python (to match SciPy's solver interface) produce the same results as the original formulation.

If you're interested, I'll obtain the author's permission and share the notebook privately so you can assess the scope before we discuss compensation. Bonus points if you have experience with physics-based simulations and are open to occasional follow-up questions :)

Many thanks and regards!

POSTED BY: Merlin Stampa
3 Replies
Posted 6 days ago

I'm not a physics expert, but if the main requirement is to be able to understand and refactor Wolfram Language code, I might be able to help. If you want to discuss, let me know where to reach you.

POSTED BY: Eric Rimbey

Hi Eric, thanks so much for the offer! Easiest option to reach me is email: firstname dot lastname ät fh-dortmund dot de.

Reading my own post again, I should probably clarify what I meant by "financial compensation". I'm working with a limited PhD budget, i.e., not enough to spare to pay a freelance engineer at market rates for more than maybe 2–3h. My hope was to find someone in academia who finds the problem interesting and is willing to help clean this up in a collegial spirit, with the money more as a gesture of appreciation rather than a commercial contract. And I'd be very open to reciprocal help, if you ever need input on robotics, Python, manuscript review, drum lessons, or anything else I can practically do :)

So please consider this before continuing. Thanks!

POSTED BY: Merlin Stampa
Posted 3 days ago

I sent an email

POSTED BY: Eric Rimbey
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard