Set the default role to Viewer for the project itself,
On the Project level, toggle on the option for Allow resource level role grants (see screenshot),
Create a subfolder (i.e., Sandboxes),
Click on the subfolder (so it’s highlighted blue, don’t go into it), then explicitly grant the Editor or equivalent role on that subfolder
This will allow users to create a subfolder (i.e., with their name) that they can create resources in while referencing the view-only core assets at project-root.