As far back as 40d I've wanted to train my dwarves in swimming, but the only way I could do it was with a manually operated swimming pool, and it simply took too much time and micromanagement for too little gain. The wiki has a diagram for an automated swimming trainer, but with the new version, it can seriously injure or even kill your dwarves.
So, for my first real contribution to dwarven science, I present: the dwarven kiddie pool. My design uses an aquifer, but it should be possible to make it work without one. At least, I think so.
z+1 | | z | | z-1 |
#,# #,# #*# ### | | #v# #.# #%# #%# #v# ### | | #?# #^# #O# ### #?# ### |
# | : Wall |
# | : Aquifer wall |
, | : Floor |
* | : Gear assembly, floating |
v | : Ramp down |
. | : Empty space above the pressure plate |
% % | : Screwpump, pumping south |
? | : Ramp up |
^ | : Pressure plate, triggered by citizens |
O | : Constructed wall |
Access is from the north. Level z-1 is in the aquifer layer.
1. Starting at level z, just above the aquifer layer. Dig out the five squares, but only channel out the southern-most square for now. This is so the water from the pump has somewhere to go.
2. Build the screwpump.
3. Channel out the floor north of the pump, then the floor north of that.
4. Move to level z+1. Dig out the squares, channeling out the last one so that the gear assembly will be able to power the pump. You can dig out anything else you need to bring in power, but I simply built a windmill one z-level above.
5. Build the gear assembly. At this point your pump should be powered.
6. Move to level z-1 and remove the ramp at the pump intake.
7. Build a pressure plate at the pump intake, set to trigger when citizens step on it. Make sure you set the minimum weight at the lowest setting. You may get some job cancellations, but you'll get it done eventually.
8. Dig out the square south of the pressure plate you just built.
9. Construct a wall just south of the pressure plate. Again, you may get job cancellations.
10. Link the pressure plate to the gear assembly.
11. At this point, the pressure plate will signal the gear assembly, cutting power to your pump. Build a lever, connect it to the gear assembly, then pull the lever to restore power. You can deconstruct the lever to recover two of your mechanisms.
12. Use d-n to deconstruct the constructed wall. An idle dwarf will come and step on the pressure plate, cutting power to the pump and flooding the pool. The dwarf will cancel the job and climb out via the ramp, but not before gaining a bit of swimming skill. Once he's gone, power will be restored and the pool will drain again, ready for the next lesson.
That's all there is to it. I left one of these running in a small fort with thirteen dwarves. After 10 months or so, two were adequate swimmers, eight were novices, one was dabbling, and two still had no skill at all. There were no injuries or deaths.
There's no reason you couldn't build an entire suite of these. You should be able to power
10 eight from a single water reactor if you space everything properly. It'll even train any children, since they take deconstruction jobs.
You will get constant "
Urist McDwarf, Swimming Student cancels Remove Construction: Dangerous terrain" spam if you don't figure out how to turn it off in announcements.txt.
I haven't tested this with dwarven mothers. It might be a good idea to set the pressure plate's minimum weight to be more than a baby but less than a child.
UPDATE: Apparently deconstruction work is cumulative. I guess this should be surprising, since construction is cumulative. Anyway, your dwarves will eventually succeed in deconstructing the wall you use as bait.
Another way to get your dwarves into the kiddie pool is a 1x1 meeting zone over the pressure plate. If you do this, you don't need to mine out the square where the wall would go. Alternatively, you can replace the wall with a statue, and designate a statue garden that only covers the pressure plate. Both of these techniques will lure idle dwarves into the kiddie pool, but you could get a large number of dwarves idling around the pool entrance, making friends very very quickly.