Phasmids: An Introduction to Stick and Leaf Insects

Stick insects (known as walkingsticks in the USA) and leaf insects form the order Phasmida (also known as Phasmatodea, Phasmatoptera, and Cheleutoptera). The name of the order derives from the Latin ‘Phasma’ meaning phantom, apparition, spectre or ghost. The majority of species camouflage themselves as sticks and leaves, although some such as Oreophoetes peruana are very brightly coloured.

 

Male Oreophoetes peruana 

Adult male Oreophoetes peruana

Diet: What do they feed on?

All known Phasmids are herbivorous. Some species are known to eat a wide variety of leaves, while others are likely to have a much narrower diet. In captivity many species can be reared using plants from the family Rosacae (especially Bramble), Oaks, Hypericum and Eucalyptus.

Care: How to look after stick insects?

See this page.

Life Cycle

Eggs

The female often drops the eggs randomly, although some species bury their eggs in the soil, glue their eggs to an appropriate surface, or pierce them into a leaf (Asceles sp.). In general, the female will lay in excess of 100 eggs, with some species laying several thousand. The eggs may hatch in as little as a few weeks, while in captivity some can take over 18 months to hatch. The capitulum of some species is attractive to ants, perhaps giving the eggs additional protection if the ants carry them into their nest.

Egg of Epidares

Egg of Epidares nolimetangere (de Haan, 1842)

Nymphs

Phasmids undergo an incomplete metamorphosis, with the young nymphs resembling miniature (albeit wingless) adults. Like all insects, Phasmids have an exoskeleton and growth is achieved by the periodic shedding of this external layer and expanding the new, larger, skin underneath. This process is known as moulting or ecdysis. Phasmids generally moult between 4 and 8 times. The female often undergoes one more moult than the male.

Moulting phasmid

Eurycantha calcarata ssp. (PSG 44) moulting

Adults

Adult insects are the only stage to have fully developed wings, although wings are often absent in the female or in both sexes. Mating takes place with the transfer of a spermatophore. Parthenogenesis (the ability for the female to lay fertile eggs without mating) is well known and common in the Phasmida.

Length and Weight

Phasmids are amongst the largest of all insects and the genus Phobaeticus contains the longest known extant species. Females of Heteropteryx dilatata are the heaviest known Phasmids, possibly weighing in excess of 65 grams.

Female Heteropteryx dilatata

Adult female Heteroptery dilatata

Camouflage and Colouration

Phasmids generally rely on camouflage to evade predators. However, a number of species use active defences. Some species (e.g. Eurycantha) have large spines on the legs. By rapidly bringing their legs together the insects can use their spines to inflict a painful wound. Some species are also capable of making a loud, startling, hissing noise using their wings. Other species have brightly coloured wings which they can flash to alarm predators. A number of species, such as Anisomorpha buprestoides, can produce a defensive spray capable of causing temporary blindness in humans and much discomfort.

Avoiding Predators

A number of other predator escape behaviours exist. Nymphs of Extatosoma tiaratum resemble ants in both appearance and frenetic behaviour. Catalepsy (feigning death) and falling to the ground is used by many of the less bulky species, including the commonly kept Carausius morosus.

The Phasmid Study Group

The Phasmid Study Group has kept around 300 species in captivity although a number of these have been lost in culture for a variety of reasons. Keeping these insects as ‘pets’ has become a popular hobby and a large amount of information regarding their care is available.

20.443MBMemory Usage272msRequest Duration
Joomla! Version4.4.3
PHP Version8.1.5
Identityguest
Response200
Templatecassiopeia
Database
Server
mysql
Version
10.3.37-MariaDB
Collation
latin1_swedish_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:47 [ "PATH" => "/usr/local/bin:/bin:/usr/bin" "HTTP_ACCEPT" => "text/html,application/xhtm...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1736396614 "last" => 1736396614...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (4.09MB) (37.25ms)
  • Before Access::preloadComponents (all components) (7.13MB) (87.97ms)
  • After Access::preloadComponents (all components) (187.38KB) (2.63ms)
  • Before Access::getAssetRules (id:1 name:root.1) (61.55KB) (44μs)
  • After Access::getAssetRules (id:1 name:root.1) (26.23KB) (433μs)
  • afterInitialise (72.22KB) (2.84ms)
  • afterRoute (1.49MB) (24.07ms)
  • beforeRenderComponent com_content (1009.21KB) (13.89ms)
  • Before Access::preloadPermissions (com_content) (449.67KB) (6.39ms)
  • After Access::preloadPermissions (com_content) (130.52KB) (1.45ms)
  • Before Access::getAssetRules (id:120 name:com_content.article.18) (7.2KB) (41μs)
  • After Access::getAssetRules (id:120 name:com_content.article.18) (8.83KB) (83μs)
  • afterRenderComponent com_content (3.15MB) (50.38ms)
  • afterDispatch (290.62KB) (3.71ms)
  • beforeRenderRawModule mod_menu (Main Menu) (454.05KB) (7.92ms)
  • afterRenderRawModule mod_menu (Main Menu) (935.72KB) (20.62ms)
  • beforeRenderRawModule mod_breadcrumbs (Breadcrumbs) (29.05KB) (634μs)
  • afterRenderRawModule mod_breadcrumbs (Breadcrumbs) (46.85KB) (1.84ms)
  • beforeRenderModule mod_breadcrumbs (Breadcrumbs) (704B) (10μs)
  • afterRenderModule mod_breadcrumbs (Breadcrumbs) (3.07KB) (207μs)
  • beforeRenderModule mod_menu (Main Menu) (1.45KB) (84μs)
  • afterRenderModule mod_menu (Main Menu) (13.93KB) (99μs)
  • afterRender (439.86KB) (8.63ms)
  • 1 x Before Access::preloadComponents (all components) (7.13MB) (32.29%)
    87.97ms
    1 x afterRenderComponent com_content (3.15MB) (18.49%)
    50.38ms
    1 x afterLoad (4.09MB) (13.67%)
    37.25ms
    1 x afterRoute (1.49MB) (8.83%)
    24.07ms
    1 x afterRenderRawModule mod_menu (Main Menu) (935.72KB) (7.57%)
    20.62ms
    1 x beforeRenderComponent com_content (1009.21KB) (5.1%)
    13.89ms
    1 x afterRender (439.86KB) (3.17%)
    8.63ms
    1 x beforeRenderRawModule mod_menu (Main Menu) (454.05KB) (2.91%)
    7.92ms
    1 x Before Access::preloadPermissions (com_content) (449.67KB) (2.34%)
    6.39ms
    1 x afterDispatch (290.62KB) (1.36%)
    3.71ms
    1 x afterInitialise (72.22KB) (1.04%)
    2.84ms
    1 x After Access::preloadComponents (all components) (187.38KB) (0.97%)
    2.63ms
    1 x afterRenderRawModule mod_breadcrumbs (Breadcrumbs) (46.85KB) (0.68%)
    1.84ms
    1 x After Access::preloadPermissions (com_content) (130.52KB) (0.53%)
    1.45ms
    1 x beforeRenderRawModule mod_breadcrumbs (Breadcrumbs) (29.05KB) (0.23%)
    634μs
    1 x After Access::getAssetRules (id:1 name:root.1) (26.23KB) (0.16%)
    433μs
    1 x afterRenderModule mod_breadcrumbs (Breadcrumbs) (3.07KB) (0.08%)
    207μs
    1 x afterRenderModule mod_menu (Main Menu) (13.93KB) (0.04%)
    99μs
    1 x beforeRenderModule mod_menu (Main Menu) (1.45KB) (0.03%)
    84μs
    1 x After Access::getAssetRules (id:120 name:com_content.article.18) (8.83KB) (0.03%)
    83μs
    1 x Before Access::getAssetRules (id:1 name:root.1) (61.55KB) (0.02%)
    44μs
    1 x Before Access::getAssetRules (id:120 name:com_content.article.18) (7.2KB) (0.02%)
    41μs
    1 x beforeRenderModule mod_breadcrumbs (Breadcrumbs) (704B) (0%)
    10μs
28 statements were executed, 2 of which were duplicates, 26 unique34.41ms213.66KB
  • SELECT @@SESSION.sql_mode;143μs1.71KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `j54f3_session` WHERE `session_id` = ?199μs1.68KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `j54f3_session` WHERE `session_id` = :session_id LIMIT 1115μs1.9KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `j54f3_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)286μs928BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `j54f3_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 11.27ms25.9KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `j54f3_viewlevels`171μs25.01KB/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `j54f3_usergroups` AS `a` LEFT JOIN `j54f3_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest214μs1.68KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `j54f3_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`7.52ms5.09KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SET sql_mode=(SELECT REPLACE(@@sql_mode,'STRICT_TRANS_TABLES',''));140μs1.25KB/administrator/components/com_osmembership/loader.php:94Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `j54f3_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40,:preparedArray41,:preparedArray42,:preparedArray43,:preparedArray44,:preparedArray45,:preparedArray46,:preparedArray47,:preparedArray48,:preparedArray49,:preparedArray50,:preparedArray51,:preparedArray52,:preparedArray53,:preparedArray54,:preparedArray55,:preparedArray56,:preparedArray57)1.8ms31.68KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT a.id FROM j54f3_osmembership_plans As a INNER JOIN j54f3_osmembership_urls AS b ON a.id = b.plan_id WHERE a.published = 1 AND `b`.`url` = 'https://phasmidstudygroup.org/index.php/phasmids'325μs912B/plugins/system/osmembershipurls/osmembershipurls.php:300Copy
  • SELECT id FROM j54f3_osmembership_plans WHERE published = 0179μs912B/plugins/system/osmembershipurls/osmembershipurls.php:206Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `j54f3_menu` AS `m` LEFT JOIN `j54f3_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`3.65ms7.49KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT `config_key`,`config_value` FROM j54f3_osmembership_configs220μs9.06KB/administrator/components/com_osmembership/libraries/mpf/config/config.php:42Copy
  • SELECT * FROM `j54f3_languages` WHERE `published` = 1 ORDER BY `ordering` ASC229μs3.17KB/libraries/src/Language/LanguageHelper.php:142Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `j54f3_template_styles` AS `s` LEFT JOIN `j54f3_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 1547μs5.52KB/administrator/components/com_templates/src/Model/StyleModel.php:773Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `j54f3_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 0809μs28.78KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `j54f3_content`1.18ms2.61KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • UPDATE `j54f3_content` SET `hits` = (`hits` + 1) WHERE `id` = '18'9.31ms0B/libraries/src/Table/Table.php:1325Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `j54f3_content` AS `a` INNER JOIN `j54f3_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `j54f3_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `j54f3_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `j54f3_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `j54f3_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)680μs20.77KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `j54f3_categories` AS `s` INNER JOIN `j54f3_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`633μs7.2KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `j54f3_contentitem_tag_map` AS `m` INNER JOIN `j54f3_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)334μs7.3KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `j54f3_categories` AS `s` INNER JOIN `j54f3_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`787μs7.2KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM j54f3_fields AS a LEFT JOIN `j54f3_languages` AS l ON l.lang_code = a.language LEFT JOIN j54f3_users AS uc ON uc.id=a.checked_out LEFT JOIN j54f3_viewlevels AS ag ON ag.id = a.access LEFT JOIN j54f3_users AS ua ON ua.id = a.created_user_id LEFT JOIN j54f3_fields_groups AS g ON g.id = a.group_id LEFT JOIN `j54f3_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4)) AND `a`.`access` IN (:preparedArray5,:preparedArray6)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray7,:preparedArray8)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC1.57ms8.09KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `j54f3_modules` AS `m` LEFT JOIN `j54f3_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `j54f3_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1,:preparedArray2)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) ORDER BY `m`.`position`,`m`.`ordering`1.35ms3.31KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `j54f3_scheduler_tasks` AS `a` WHERE `a`.`state` = 1305μs1.85KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:466Copy
  • SELECT `session_id` FROM `j54f3_session` WHERE `session_id` = ?192μs1.9KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `j54f3_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?251μs840BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy