Let me start by saying I love love love the idea of this laptop and even as is I want one but unless paypal (which can do the pay in 4 payments thing) becomes accepted it will be a bit before I can get one.
A lot of people (myself included) would like to see a gpu option, but this has it’s own set of issues. Commonly MXM is mentioned but very few gpu’s ever were made for that and it is mostly a dead standard, furthermore by todays standards it is kind of bulky.
I didn’t come here to gripe on that though, mulling over this I have had some ideas that I intend to share in the hopes that someone with ability might be inspired to use these ideas in someway. At the end of this I will also mention some of the intermediate ideas I ran through incase they are of some use.
The current idea is that m.2 slots can already carry 4 pcie lanes as is and are a tiny form factor that also allows for some micro electronics to still be on the board beneath any module in use and would allow for more then just the gpu idea. Now GPU’s of the modern variety do well with more then 4 lanes, but that could be accommodated by having a second m.2 connector beside the first perhaps closer then normal specification would suggest (but whatever distancing is used once implemented needs to be forever standardized, for future proofing, and to promote a open ecosystem). Two m.2 slots would provide up to 8 lanes, but in the same way that laptop ram back in the day could have a double connector with 1 ram stick on top of the other, a similar design could be employed to have m.2 slots that are 2 wide and 2 tall/deep making for 4 total connectors and 16 lanes; alternatively if the length of the gpu modules (I will talk on that a bit below) were to be standardized (say 80mm) then the other 2 m.2 connectors could be on the opposite side and the module use a ribbon cable so it is actually possible to insert the thing.
Alright so the above speaks to how to get 16 pci lanes available to a user insertable module by adapting already in use standards in a semi new way that could be considered an extension of the old way and allow for more then just gpu modules. Place these connectors so that the inserted module would exist literally right beside the cpu, then the heatpipes cooling the cpu could have an extra pipe or 2 going over to the area where the module might exist. if no module is inserted they just hover there unused, but if inserted they would cool the gpu with the same apparatus as the cpu.
Now at present there are no gpu’s fitting this kind of make, but framework inc and eventually third parties could order raw gpu chips and put them on a board suitably sized to this whole endeavor. Such modules, if a lower end gpu was chosen, could be sized in a way to not use all the slots mentioned above, allowing for extra m.2 devices to be inserted instead. Now admittedly some fancy bios/uefi bifurcation trickery would be in order to make 4 slots work as 1 or optionally as 4; but these guys built a whole laptop I think that could be managed.
=========================
Ideas that preceded the above mentioned incase they are helpful for some unknown limitation the above may have.
Idea 1 : Create a custom socket be it pinned or something similar to intel’s LGA stuff but the pins would effectively be pcie pins, and standardize this socket, then get a very thin pcb and mount the gpu to one side along with supporting circuitry, and have pins or pads for your socket on the bottom. Then publish the standard so the world can jump in and make more of these, place socket beside cpu so it can share it’s cooling apparatus.
Idea 2: Use a m.2 slot, but due to pcie lane limitations have at the opposite end of the gpu module pins that would be pressed into a socket near the screw holding the module down. 4 pci lanes would be provided by the m.2 slot the remaining pcie lanes provided by the custom socket at the other end. Again beside the cpu to share the cooling apparatus.
======
Note all of the above is about taking an existing standard and stretching it beyond its current spec, but opening the modified version up so it can become it’s own all new spec, that one could hope would spread beyond just framework.