Perhaps your colleague "looks really grumpy or depressed. ... talks very little" because of something at home or elsewhere, that's probably not your business.
"... he has this habit of slamming the door real hard. Not like some people do out of negligence, letting the door fall shut behind them. It's a glass door and he sometimes gives it a jerk in a way that the glass keeps vibrating for a second.".
So you object to the way he operates the door. He knows a special way to keep it vibrating.
"There usually is an atmosphere of concentration in the office, but this behavior disrupts it badly.".
That's understandable, but does everyone agree or are only you disturbed?
"... but can't think of a way that does not come across as rude or as passive aggressive. Any thoughts on how I might go about that?".
You need to figure out the results you want and how quickly you need them.
You don't want to come across as trying to portray him as an unsociable oaf, whom doesn't know how to operate a door.
If you were friends with this person it should be easy enough, but that doesn't seem the case.
You'll need to time your approach and decide how gingerly you want to proceed.
When he passes through the door ask if everything is OK.
If it is not ask if there's anything you can do, if everything is great even better.
Mention that he seems unhappy and has been slamming the door lately, it's come to the point where you need to bring this up; it's very disturbing.
- Tell the boss, get them to resolve this. Suggest they pay to have the door repaired.
- Tell them directly: "Shhhh!, there's no reason to be so noisy".
I tried searching the Internet for 'door operating instructions', I couldn't find anything (except for a dryer door); therein lies the problem ... You could try making a label and printing it on to a clear sticker - calculate his exact eye-height and line it up. Stick it to the door at lunch or after work anonymously.
I did manage to find something less than "Operating Instructions" but it should serve as a polite and anonymous hint: