nmccrea / sobot-rimulator

Autonomous mobile robot simulator.
GNU General Public License v3.0
263 stars 146 forks source link

A Roadmap #8

Open nmccrea opened 3 years ago

nmccrea commented 3 years ago

I recently had the opportunity to come back to this project after many years and perform some critical maintenance, with the much-appreciated help of contributors. The project was ported from Python 2 to Python 3, the documentation was updated, and the entire codebase was linted to adhere more closely to standard Python style guidelines.

I also identified the next steps that I believe should be taken if this project is to keep evolving. The motivation for these tasks is to make Sobot Rimulator more portable and accessible, easier to extend and maintain, and more generally useful for education, research, and development of 2D autonomous robot control and navigation systems.

This issue is here to document the tasks I think should be tackled next, along with some more ambitious ideas that appear towards the bottom. These tasks are as follows:

More Critical Maintenance

These urgent tasks are focussed on bringing the project up date with minimal best practices for modern software development.

Maintainability

These tasks are aimed at making it easier to work with and evolve this codebase responsibly as time goes on.

More Powerful Features

Most of these are big, labor-intensive, and very speculative improvements that would elevate Sobot Rimulator from a limited toy project to a general research and development tool far beyond its current capabilities. With the possible exception of the first two items, I would consider all of these with a big grain of salt, as there are already powerful game development tools and robotics simulators that do much of this. It may not make sense to try to reinvent the wheel. That said, these are a whole lot of fun to think about and would certainly be fun to build.

tsadarsh commented 3 years ago

I am super excited to see this. I was really hoping to see this project level up soon. Critical Maintanence puts a clear picture of what one should work on first. I personally too felt the need to replace GTK with a more poratble library. ipywidgets sounds promising.

I too am actively researching on alternative widget libraries for my pet-project. I will keep in mind that the widget library is aligned with Juypter notebook. I want to let you know that I am working on replacing GTK library. I will let you know within a week's time if I can take up this part of project.

Overall this roadmap is detailed and well-planned. This may even be the roadmap to a new level of success this project hits :fireworks: .

nmccrea commented 3 years ago

I've edited the original post and made some updates, having had some time to think through some of the items more thoroughly.

Sadly it looks like I will have to leave things there for now, and won't be able to actually tackle these tasks for the foreseeable future. Life is crazy! I hope I can find some time to come back again before long but only time will tell. Getting GTK out of there is a bit of hump to get over. After that, most of the items in Critical Maintenance and Maintainability are pretty low-hanging fruit.

@maddypie I can't tell you how much I appreciate your enthusiasm for this project. I wish I could do more right now. I really hope we can team up on more of this work in the future.