Marine Gastropods

, 29 July 2025
Marine Gastropods
Hairy Spiny Doris sea slug © Paul Parsons

Archie Taplin

Trainee Community Engagement Officer

In the lead up to marine week, I joined the Marine Gastropods course led by Simon Taylor (Marine Recorder for the Conchological Society of Great Britain and Ireland). It was an in-depth look at some of the strangest and most diverse residents of our shoreline: marine gastropods, molluscs that include sea slugs, topshells, limpets and whelks.

The day began in the classroom, with a crash course in taxonomy, morphology and some surprisingly shocking mollusc biology. Let’s just say, if your reproductive parts were located where some of these molluscs keep theirs, you’d think twice about joining the family FaceTime call. 

Painted Topshell © Paul Naylor

We explored ID techniques, etymology (like how nudibranch comes from nudi- meaning naked, and -branch meaning gill), and had a table of shelled specimens to check out and a flip through Mollusc World magazine, yes, that’s a thing!

Afterwards, we headed out with Simon and our new mollusc ID skills to examine the rocky shoreline at Rottingdean. With Simon and other coastal experts around to point out key features and answer every question, the rocky shoreline came alive with an incredible variety of species. Much like limpets, we found our way back to where we began, the classroom, to discuss our findings and wrap the day up. If Simon Taylor was Aladdin, his mollusc-filled mind was the magic carpet, which, of course, makes me Princess Jasmine. He showed me ‘a whole new world’ (of molluscs), one I’ll be seeing with much more appreciation next time I’m by the sea.

Marine gastropod day © Archie Taplin

My favourite mollusc of the day was a Chiton we found (an oval shaped mollusc that’s somewhere between a sea slug and an Armadillo). I loved how prehistoric it looked with its cool armour plates.

With Marine Week kicking off, this course felt like the perfect appetiser for a fortnight of ocean-themed admiration and education. Highly recommended to anyone keen to boost their coastal ID skills and general marine knowledge and wonderment.

Leave a comment

Comments

  • Lucador:

    Wow! This was such a funny/interesting blog. I’d love to learn more and check out Mollusc world magazine soon. Keep these blogs coming!

    29 Jul 2025 12:07:00

Time Δ Debug Message - Perch Runway 3.2
1782565786.50630 [906] SELECT p.pagePath, pr.routePattern, pr.routeRegExp, p.pageTemplate, pr.routeOrder, s.settingValue AS siteOffline FROM swt_pages_staging p LEFT JOIN swt_page_routes pr ON p.pageID=pr.pageID LEFT JOIN swt_settings s ON s.settingID='siteOffline' UNION SELECT NULL AS pagePath, pr2.routePattern, pr2.routeRegExp, pr2.templatePath AS pageTemplate, pr2.routeOrder, NULL AS siteOffline FROM swt_page_routes pr2 WHERE templateID!=0 ORDER BY routeOrder ASC, pagePath ASC
1782565786.54010.0338Matched route: news/[slug:s]
1782565786.54020.0001Server address: 216.73.216.31
1782565786.54030.0001Using master page: /templates/pages/blog/post.php
1782565786.54030Page arguments:
Array
(
    [0] => /news/marine-gastropods
    [s] => marine-gastropods
    [1] => marine-gastropods
)
1782565786.54060.0003 [1] SELECT * FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782565786.54160.001 [86] SELECT DISTINCT settingID, settingValue FROM swt_settings WHERE userID=0
1782565786.54390.0022 [1] SELECT locationID FROM swt_shop_tax_locations WHERE locationIsHome=1 LIMIT 1
1782565786.54470.0008INSERT INTO swt_shop_cart(memberID,locationID,currencyID,cartPricing,cartProperties) VALUES(NULL,'1',47,'standard','[]')
1782565786.54680.0022 [1] SELECT * FROM swt_shop_cart WHERE cartID=22350006
1782565786.54740.0005 [1] SELECT * FROM swt_shop_cart WHERE cartID=22350006
1782565786.54790.0006 [nil] SELECT * FROM swt_shop_sales WHERE saleFrom<='2026-06-27 13:09:00' AND saleTo>'2026-06-27 13:09:00' AND saleActive=1 AND saleDeleted IS NULL ORDER BY saleOrder ASC
1782565786.55020.0023 [1] SELECT SQL_CALC_FOUND_ROWS DISTINCT tbl.* FROM ( SELECT idx.itemID, main.*, idx2.indexValue as sortval FROM swt_blog_index idx JOIN swt_blog_posts main ON idx.itemID=main.postID AND idx.itemKey='postID' JOIN swt_blog_index idx2 ON idx.itemID=idx2.itemID AND idx.itemKey='postID' AND idx2.indexKey='_id' WHERE 1=1 AND ((idx.indexKey='postSlug' AND idx.indexValue='marine-gastropods')) AND idx.itemID=idx2.itemID AND idx.itemKey=idx2.itemKey GROUP BY idx.itemID, idx2.indexValue, postID ) as tbl WHERE (postStatus='Published' AND postDateTime<='2026-06-27 13:09:00' ) GROUP BY itemID, sortval ORDER BY sortval ASC LIMIT 0, 10
1782565786.55290.0027 [1] SELECT FOUND_ROWS() AS `count`
1782565786.55350.0006 [1] SELECT * FROM swt_blog_posts WHERE postID=3744 AND postStatus='Published' AND postDateTime<='2026-06-27 13:09:00'
1782565786.55440.0009 [13] SELECT * FROM swt_blog_sections ORDER BY sectionTitle ASC
1782565786.55510.0007 [1] SELECT * FROM swt_blogs ORDER BY blogTitle ASC
1782565786.55580.0007 [1] SELECT * FROM swt_categories WHERE catID=73 LIMIT 1
1782565786.55630.0005 [1] SELECT * FROM swt_categories WHERE catID=44 LIMIT 1
1782565786.55680.0005Using template: /templates/blog/post.html
1782565786.55710.0002 [162] SELECT catID, catPath FROM swt_categories
1782565786.5580.0009 [1] SELECT * FROM swt_blog_posts WHERE postStatus='Published' AND postDateTime<='2026-06-27 13:09:00' AND postSlug='marine-gastropods'
1782565786.5790.021Using template: /templates/blog/post.html
1782565786.58020.0012 [250] SELECT country, countryID FROM swt_shop_countries WHERE countryActive=1 ORDER BY country ASC
1782565786.58170.0015Using template: /templates/pages/attributes/seo.html
1782565786.5820.0003 [1] SELECT regionID, regionTemplate, regionPage, regionRev AS rev FROM swt_content_regions WHERE regionKey='Banner image' AND (regionPage='/news/post' OR regionPage='*')
1782565786.58280.0008 [nil] SELECT * FROM ( SELECT idx.itemID, c.regionID, idx.pageID, c.itemJSON, idx2.indexValue as sortval FROM swt_content_index idx JOIN swt_content_items c ON idx.itemID=c.itemID AND idx.itemRev=c.itemRev AND idx.regionID=c.regionID JOIN swt_content_index idx2 ON idx.itemID=idx2.itemID AND idx.itemRev=idx2.itemRev AND idx2.indexKey='_order' WHERE ((idx.regionID=104 AND idx.itemRev=0)) AND idx.itemID=idx2.itemID AND idx.itemRev=idx2.itemRev ) as tbl GROUP BY itemID, pageID, itemJSON, sortval, regionID ORDER BY sortval ASC
1782565786.58440.0016 [82] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageDepth >=0 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1782565786.58770.0033 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782565786.58830.0006 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782565786.59040.0021Using template: /templates/navigation/ps_nav_template.html
1782565786.59050.0001 [6] Using template: /templates/navigation/ps_nav_template_children.html
1782565786.59130.0008 [4] Using template: /templates/navigation/ps_nav_template_children.html
1782565786.59180.0005 [29] Using template: /templates/navigation/ps_nav_template_children.html
1782565786.59460.0028 [10] Using template: /templates/navigation/ps_nav_template_children.html
1782565786.59550.001 [7] Using template: /templates/navigation/ps_nav_template_children.html
1782565786.59640.0008 [9] Using template: /templates/navigation/ps_nav_template_children.html
1782565786.59950.0031 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' OR pageSortPath='/news/post' LIMIT 1
1782565786.60040.001 [1] SELECT * FROM swt_pages_staging WHERE pageHidden=0 AND pageNew=0 AND pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition
1782565786.60280.0023 [1] Using template: /templates/navigation/breadcrumbs.html
1782565786.60330.0005Using template: /templates/blog/post.html
1782565786.60360.0003 [1] SELECT * FROM swt_blog_authors WHERE authorID='1' LIMIT 1
1782565786.60440.0008Using template: /templates/blog/author.html
1782565786.60470.0004 [1] SELECT SQL_CALC_FOUND_ROWS DISTINCT tbl.* FROM ( SELECT idx.itemID, main.*, idx2.indexValue as sortval FROM swt_blog_index idx JOIN swt_blog_posts main ON idx.itemID=main.postID AND idx.itemKey='postID' JOIN swt_blog_index idx2 ON idx.itemID=idx2.itemID AND idx.itemKey='postID' AND idx2.indexKey='_id' WHERE 1=1 AND ((idx.indexKey='postSlug' AND idx.indexValue='marine-gastropods')) AND idx.itemID=idx2.itemID AND idx.itemKey=idx2.itemKey GROUP BY idx.itemID, idx2.indexValue, postID ) as tbl WHERE (postStatus='Published' AND postDateTime<='2026-06-27 13:09:00' ) GROUP BY itemID, sortval ORDER BY sortval ASC LIMIT 0, 1
1782565786.60690.0022 [1] SELECT FOUND_ROWS() AS `count`
1782565786.60730.0005 [1] Using template: /templates/blog/post.html
1782565786.61060.0033Using template: /templates/blog/comment_form.html
1782565786.61180.0011 [1] SELECT * FROM swt_blog_comments WHERE 1=1 AND postID=3744 AND commentStatus='LIVE' ORDER BY FIELD(webmentionType, 'like', 'repost', 'comment', NULL) ASC, commentDateTime ASC
1782565786.66250.0508 [1] Using template: /templates/blog/comment.html
1782565786.66320.0006Using template: /templates/blog/post.html
1782565786.66330.0002 [1] SELECT * FROM swt_blog_authors WHERE authorID='1' LIMIT 1
1782565786.6640.0007 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/what-we-do' OR pageSortPath='/what-we-do' LIMIT 1
1782565786.66470.0007 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-002' LIMIT 1
1782565786.66530.0006 [7] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-002%' AND pageDepth >=1 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1782565786.66750.0022 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782565786.6680.0005 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782565786.670.002 [6] Using template: /templates/navigation/footer-nav.html
1782565786.6710.0011 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/make-a-difference' OR pageSortPath='/make-a-difference' LIMIT 1
1782565786.67160.0006 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-005' LIMIT 1
1782565786.67210.0005 [38] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-005%' ORDER BY pageTreePosition ASC
1782565786.67450.0024 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782565786.6750.0005 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782565786.67690.002 [10] Using template: /templates/navigation/footer-nav.html
1782565786.6810.0041 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/visit' OR pageSortPath='/visit' LIMIT 1
1782565786.68170.0007 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-004' LIMIT 1
1782565786.68220.0005 [30] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-004%' AND pageDepth >=1 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1782565786.68470.0024 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782565786.68560.0009 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782565786.68760.002 [29] Using template: /templates/navigation/footer-nav.html
1782565786.69010.0025 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/make-a-difference' OR pageSortPath='/make-a-difference' LIMIT 1
1782565786.69070.0006 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-005' LIMIT 1
1782565786.69110.0005 [11] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-005%' AND pageDepth >=1 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1782565786.69350.0024 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782565786.69410.0005 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782565786.69590.0018 [10] Using template: /templates/navigation/footer-nav.html
1782565786.69720.0013Request time: 0.1933
1782565786.69720Process time: 0.1931
1782565786.69720Memory: 1.6223