Hi I’m a masters student studying theoretical physics a while back I read Jeffs book and have tried to keep with the developments. I’m currently considering if Monty could be used for some theoretical physics application for my Masters project. So my main question is if there’s anything that prevents Monty from acting in higher dimensions ie creating models of objects via the same mechanisms but in higher dimensions. And also if anyone has any advice for using Monty in non physical spaces or even any ideas about potential applications of Monty for theoretical physics.
Thanks for your question @Lucretius and welcome to the forums!
In principle this is possible. The main requirement for Monty is that it is embedded in a setting where sensorimotor loops are possible - that is, the system can “move”, resulting in a change in what is perceived. Importantly, this movement does not need to be in physical space, and could consist of a variety of actions. For example, you can imagine a system navigating a digital network, where movement occurs between interconnected nodes, and where different nodes are associated with different network information. Alternatively, you could imagine a conceptual space where movement consists of conducting an experimental intervention and observing how a system changes. Considering how your problem is sensorimotor is therefore the most important aspect.
Re. higher dimensional spaces, a system like Monty could theoretically work in spaces that have more than 3 spatial and 1 temporal dimension. We have so far constrained ourselves to 3 or less, as it is likely that humans are limited to modelling 3D spaces - given the advancements of human science and technology, this is already very powerful - and moving beyond this constraint complicates matters. Practically, Monty’s code is limited to 3 spatial dimensions, with no plans on changing this in the near term, as our research efforts are currently focused on integrating time into the system. In the long term, we might revisit this assumption.
You might be interested in reading our FAQ on using Monty for scientific models, as well as this discussion on using Monty for a non-physical space. In general the main point is that, if you can find a way of defining movement in your space of interest, then Monty could potentially be applied. In terms of dimensionality, I would recommend seeing if the system you are interested in could be formulated in 3D space. If you cannot, then you would need to implement a custom ObjectModel class that extends beyond the currently implemented 3D cartesian space; in that case, you might be interested in this brainstorming on coordinate systems.
Hope that helps and let me know if I can clarify anything else.
Thank you so much for your reply. Yes this clarifies a lot of things that I wasnt totally sure about. I would really like to use monty for my masters project and I have a supervisor willing to take me assuming I find a good application relavent to the course. I understand better the reasoning for keeping monty in 3D and it does seem like with enough scale and depth it would be able to handle more abstract composite and conceptual knowledge but perhaps there may be a way to directly use it in roughly its current state to something other than 3d physical space. Your answer has greatly helped. I would ask if you think adapting montys code for higher than 3 dimentions assuming its some kind of sensorimotor task and movement can be defined appropriately would be something one could do in the span of a few months. I am familiar with python however I have not looked into montys code base, so im really just asking how easy would this be ?
Hey there @Lucretius,
I might be able to help with your latter question. In short, modifying Monty for >3 dimensions would be a bit involved.
Here are a few of the areas that would need adjustment:
- The ObjectModel Class (as @nleadholm suggested): Specifically, the position attribute (self._graph.pos). It currently assumes 3-dimensional space. Monty also uses ScyPi’s KDTree search for nearest neighbor, which I believe is constrained to 3-dimensions.
- Sensor Modules: Some of the I/O functions would need expansion. I believe whats there currently assumes 3D spatial data.
- State representations: This currently stores location data as a 3D vector (i.e., (x, y, z)). You’d need a way to store n-dimensional.
These are just a few of the things which come to mind, though they’re not the only ones (for instance, I think motion policies assume 3D).
The low hanging fruit here, in my mind, is that Monty leans pretty heavily on several SciPy functions which are dimensionally constrained (Rotation, KDTree, et cetera). Finding alterntives to those functions would probably be a good place to start.
P.S.
For what its worth, I agree with Niels. IDK if it would be worth it to expand Montys dimensional representation. As he said, Humans are likely 3+1, and yet we get along understanding high dimensionality just fine (take yourself, for example). Theres no reason the same couldn’t be true for Monty.
Many thanks for that. Yes i’ll try and think of something that could be done in 3D. But i think while a scaled up monty (with enough layers to allow for conceptual abstraction) could deal with higher dimensional conceptual knowledge i felt that just hacking it as is and applying to a higher dimensional problem could be interesting. But i appreciate the complexities of this as you clearly explain
Thanks again I’m finding everyone so helpful on this forum