i'm considering these: swimming,karate and soccer
The old standard wisdom is that we don't play sports to get fit...We get fit to play sports.
None of the sports you list are particularly good for "building muscle". Swimming is an aerobic exercise... Swimmers tend to be rather slender... Well built but not overly muscular.
Soccer does little or nothing for your upper body. Lots of running... Good for general fitness but not particularly "building muscle"
Martial artists tend to develop decent physiques, but mostly because of the auxiliary training....Expect to be doing lots of pushups and bag training and such.
Unfortunately, the best and most efficient way to build up muscular size is still lifting weights. You don't need to become a body-builder.... Just a good basic general fitness plan.
Of the three you mention, I'd say swimming as offering the best fitness benefits.
Swimming is the ideal way for a skinny guy to build muscle. It is ideal because when you swim there is little stress on your muscles. It is also great because it uses all of your muscles. Have you seen Michael Phelps or Ryan Lochte? Girls are crazy for their bodies.
Swimming and cross country and track and field. These three improve and build up cardio, endurance and speed
I would say Karate