I have been working off and on in my free-time on a mod for The Witness which tries to improve on some of the graphical choices that have aged since the games release. The goal of the project is essentially to provide a "Super Ultra" graphical setting to the game. That is, change some of the resolution, vertex count and LOD-ing choices that the creators made in 2016, to reflect the capabilities of modern hardware. At the same time, we want to avoid at all costs changes to the content and art style of the game itself.
For example, the game has some secret settings, 'panel_fade_begin' and 'panel_fade_end' which control how far away the camera must be from a panel, before it starts fading toward a solid colour. It may be tempting as the developer of a mod like this to set this to a very high number and be done with it. However, the game actually uses this effect for gameplay purposes. As shown below, without the fade out, the strength of the puzzle is diminished by virtue of the panel having higher contrast lines.
This is in contrast to some other settings which the game exposes, 'cluster_distance' and 'lod_distance' which control how far away the camera must be from a cluster of objects, before it starts using a lower-resolution mesh. As far as I know, the game does not really use this effect for gameplay purposes, so we can change it to our liking. (If you do know of such a gameplay purpose, please let me know!)
The game actually exposes a fair number of settings which we can play with, just by adding a few lines to the Local.variables config file. But there are some things, such as the panel grid/line vertex counts, which require patching the game binary itself. There are also some settings which almost work, but which will require some more work to get them to behave properly. For example, it is trivial to increase the resolution of the shadow map, it seems to mess with games calculation for the bounds that get rendered to the map, making things at a distance not receive shadows properly. Similarly, increasing the panel render resolution works almost perfectly, except that the subtraction polyominos become very thin and hard to see. I am working on a fix for both of these things, but it is easy enough for the user to comment/uncomment the settings they want to use.
I have also written an asset exporter for the game, which is able to export most of the meshes, textures, and sounds from the game into common formats, such as .obj. The code for this is more thrown together than the patcher and it is written in Jai, so I haven't released it yet, but I plan on cleaning it up a bit and maybe trying to write an importer for the game for other people to use for their content mods.