> That "Vino" driver for DisplayLink driver was a clean-room reverse-engineered DisplayLink driver that was developed in part by AI and written in Rust.
It is my strongly-held opinion that, regardless of what you think about AI in general, reverse engineering projects ought to stay as far away as possible from LLM code gen as possible. They are a very easy and straightforward way for a copyright owner to claim access to their code, since basically ALL code was trained on. Unless you have hard evidence the particular bit of code you want to RE was not in the training set, you should not use an LLM to reverse-engineer or rewrite it.
This is not a moral argument; as much as I hate AI companies playing fast and loose with other people's work, the underlying arguments that make RE legal work much better if you do not look at the source code. And while US judges are straining to keep AI training fair use, that does not make the AI a copyright laundering device. A copyright owner can absolutely reach through a fair use to get to you. Think of it like if you downloaded 10 different YouTube video essays on the same movie and attempted to stitch them together into a normal copy of the underlying movie. Obviously, your use has a different (and worse) legal status than the reviews do.
Also, fuck Synaptics.
Mostly agree. It's been super helpful for personal use but I don't think it's possible to achieve a true "clean room" implementation. Anything copyright encumbered should stay away.
On the other hand, it's been great for poking at cheap IoT devices and figuring out how to interact without crappy proprietary apps.
I’ve been warning about this for a long time.
With typical clean room RE you get two artificers with clean copyrightbility - a fair use spec describing the system, a new implementation. This is not legally required, but the paper trail is a good defense.
If AI writes the spec, it may have just tainted itself if that work is then used to in future training. The output is not protected by copyright, but that probably doesn’t matter. If AI writes the output, there is no protection over that either, which may or may not matter.
Ultimately, however, this is a mechanical, derivative work. It isn’t washed because no creative human expression was introduced in either phase.
If the phases are split into AI writing the spec and human writing the implementation, and the spec is determined to be infringing, the implementation is infringing. The AI spec has no judgement over what’s copyrightable expression in the original, and there’s a high likelihood it produces an unauthorized derivative.
If a human writes the spec and an AI writes the code, the output is probably clean, but also not copyrightable. This is less of a concern for open source projects written by a single maintainer, but may have effects for larger projects or proprietary projects. However, writing the spec is the harder of the two parts and what people like using AI for.