I was skimming Simon Willison’s blog (I know his uncle) when I came across this cool idea for automatic avatar generation. Well to tell the truth, I took one look at the title “Visual Security: 9-block IP Identification” and deleted the link from my RSS reader but the next day a link based on that idea came up for generating a unique monster avatar for each user that did catch my interest. After all if it’s got monsters, it has got to be interesting.
Anyway it turns out that Don Park decided to use a commenter’s IP address to generate a random (but persistent for each user) geometric image to associate with each user. This means that without needing external images or sites, each user can have a unique picture associated with them. Even better if several sites were to use the same algorithm for generating the image, the image would stay associated with the user across sites without any cross site communication. Andreas Gohr ran with this idea and decided to generate monsters instead of geometric images and use email addresses instead of IP addresses. So that brings the story here, since these two real programmers had already done all the hard thinking and programming, I thought I would make a quick and dirty WordPress plugin to incorporate MonsterIDs easily into other blogs. So here is WP_MonsterID. It’s my first real WordPress plugin so it may not be pretty but it seems to be working OK here (see monsters in the comments below). Edit: If monsters aren’t your thing, I have another plugin using just Don Park’s geometric shapes.
Features
- Monsters
- Dynamically generated avatars for each commenter
- Consistent on any blog
- Gravatar support
- Theme edits no longer necessary
Current Version:
Installation instructions:
Unzip monsterid.zip
. Upload wp_monsterid.php and the monsterid
folder. Make sure the monsterid
folder is writable. That should be it. Monsters should now appear beside your commenters’ names.
You can add CSS for img.monsterid
in your theme’s style.css
to adjust the appearance of the images or adjust the size in the MonsterID control panel (your old monsters won’t be deleted until you clear the cache). You can also turn on Gravatar support and clear the MonsterID image cache in the Control Panel.
Tai has translated the installation instructions to Japanese, 5lineas translated them to Spanish, and Dennys has installation tips in Chinese (although these are a bit out of date as of Version 1.0).
Change Log:
-
v3.0 12-10-2014:
- Changed to pure php Mersenne twister to avoid mysql integer overflow problems. This will change monsters to change if you clear the cache.
-
v2.12 05-18-2008:
- Fixed missing WP 2.5+ builtin avatars
-
v2.11 05-17-2008:
- Fixed recent comment widget double monsters on single pages
- Added support for WP 2.5+ builtin avatars
-
v2.1 03-04-2008:
- Improved default CSS for MonsterID Recent Comments Widget
- Added custom CSS editing for widget and MonsterID’s
- Optimized artistic monsters to only loop through the square region containing the part
-
v2.04 2-14-2008:
- Removed smaller MonsterID option
- Added Recent Comments (with MonsterID) widget (since default Recent Comment Widget doesn’t provide commenter email)
-
v2.02 2-13-2008:
- Removed monsterid from admin menus when using smaller MonsterIDs
-
v2.01 2-12-2008:
- Add size to img attributes to avoid resizing page as loaded
- Added option for smaller MonsterIDs on non-post page (like the Recent Comment Widget on the home page)
-
v2.0 2-05-2008:
- Added artistic monsters (thanks to the great artwork of Lemm)
- Artistic monsters are a bit tough on the server so limited generation time to a max of 5 seconds (unless the user is an admin)
- Changed to object-oriented monsterid although not completely OOP
- Added options for greyscale artistic monsters or old fashioned monsters
-
v1.02 1-03-2008:
- Fixed sizing bug (thanks to Daniel)
- Added size attribute to icons so page doesn’t resize as loaded
- Removed a couple minor bugs
-
v1.01 12-21-2007:
- Fixed automatic placement in unwanted places (again thanks to Shamus)
- Switching download link to WordPress Extends
- Fixed version numbers in plugin file
-
v1.0 12-19-2007:
- Added option to use show gravatars if they exist and fallback to MonsterID
- Theme edits no longer necessary (doesn’t hurt if you already did edit it) (This and the previous thanks to Shamus’s nice Wavatar plugin)
- Cleaned up Options page and error checking
- Caught possible infinite loop if user selects really dark or light body colors
-
v0.61 12-12-2007:
- Changed to wiki pseudocode version of Mersenne Twister
- Changed bitshifting to mysql queries since many php versions only have 31 bit integers while Mersenne requires 32
- Sort part lists to keep things consistent on different servers
- v0.6 12-11-2007:
- Changed to pure PHP version of Mersenne Twister to allow consistent random numbers across servers
-
v0.511-14-2007:
- Added reminder to clear cache after setting options
- Added option to switch to white outlines for dark backgrounds
- Added a few minor parts
-
v0.42 8-17-2007:
- Fixed unintended white background on one pair of legs
-
v0.41 8-1-2007:
- Fixed lower limit in
monster_mt_array_rand
- Readded
back.png
to parts
- Fixed lower limit in
-
v0.4 7-30-2007:
- MonsterID’s should now be consistent across servers (by changing
rand
tomt_rand
) - Now checks the lightness of body color to make sure monsters aren’t too dark
- Added some more new monster parts and changed the size slightly on a few older ones
- Minor bug and WP standards fixes
- MonsterID’s should now be consistent across servers (by changing
-
v0.3 1-25-2007:
- Added option to make background transparent. Just set the background color to 0 0 0 for Red, Green and Blue. Note that IE6 does not like transparent png and will turn the background grey.
- Changed
get_bloginfo('url')
toget_settings('siteurl')
to avoid problems when Options > General > Blog address (URI) is not default - Added a few new monster parts and increased the size slightly on a couple of older ones
- Fixed incorrect link in plugin information
- Increased length of email hash substring used to generate monster. Should increase possible combinations into the billions.
-
v0.2 1-23-2007:
- Important note: Changed base function from
build_monster
tomonsterid_build_monster
for WordPress function standards (I don’t suppose there’s any other plugins building monsters out there but better safe). - Incorporated Adrean’s new extra monster parts and random body coloring and a few parts of my own.
- Added a random background coloring and the option to set the coloring in the MonsterID menu.
- Added a test section to the MonsterID menu.
- Monster building automatically finds monster parts now so the users can add custom monster parts or delete parts they don’t like.
- Added option to output only image url to monsterid_build_monster:
monsterid_build_monster($comment->comment_author_email,$comment->comment_author,false)
- Important note: Changed base function from
-
v0.11 1-21-2007:
- Got off to a pretty inauspicious start with a faulty wordpress page, a couple of immediate small bugs and a faulty file name.
- v0.1 1-21-2007:
- First version.
For Advanced Users
If you want more control of where MonsterID’s appear, disable the Automatically Add option and find the comments.php
of your current theme (it should be in the folder wp-content/themes/[currentThemeName]/
). Open it up and look for something similar to foreach ($comments as $comment)
. Inside this loop there should be code that displays the comment author’s name or metadata like <p class="comment-author">
or <p class="comment-metadata">
. Just before all this enter:<?php if (function_exists("monsterid_build_monster")) {echo monsterid_build_monster($comment->comment_author_email,$comment->comment_author); } ?>
If you would prefer to base the monsters on the commentor’s IP address instead of the commentor’s email just replace $comment->comment_author_email
in the above with $comment->comment_author_IP
.
Customization:
If you want to customize the monster parts used in your version of WP_MonsterID just go to the wp-contents/monsterid/parts/
folder and delete any parts you don’t like. If you’d like to add your own parts, there is a Gimp file included in that folder containing a layer for each current part which should make constructing new parts easy. Save the new parts following the same conventions bodypartname_initial(s)#.png (e.g. arms_S1.png). If you come up with any good ones, feel free to send them to me and I’ll include them in the package.
spyrius | 23-Nov-14 at 5:04 pm | Permalink
this is my monster —>
Testing | 10-Dec-14 at 8:36 am | Permalink
Just testing.
test | 16-Mar-15 at 10:53 am | Permalink
test test2test testtest test
Josejulio MartÃnez | 31-Mar-15 at 11:43 pm | Permalink
showmethemonster
eFko | 11-May-15 at 11:22 am | Permalink
Want see my monster.
eFko2 | 16-Aug-15 at 3:08 pm | Permalink
Want see my monster too.
jdb | 16-Aug-15 at 3:19 pm | Permalink
Is there a way to test this class without wordpress installation ? Such that in command line : php wp_cli.php test@email.xom ?
monstertest | 21-Jun-16 at 6:22 pm | Permalink
Wanted to see my monster. ^^
pippo | 09-Feb-21 at 4:30 am | Permalink
hello, how does my monster looks like?
Gregg | 30-Apr-21 at 9:49 pm | Permalink
This is silly
Doctor | 13-Sep-21 at 3:45 am | Permalink
Cool!
test | 16-Sep-21 at 1:00 am | Permalink
I want to see my monster
DanielabelleC86 | 08-May-22 at 7:09 pm | Permalink
Testing
Sd7wd | 22-Jun-22 at 4:40 pm | Permalink
Can you make an old version of monsterid?
Anonymous | 24-Sep-22 at 4:13 pm | Permalink
So cute! Thanks for the work, guys.
Emilio Olivares | 12-Nov-22 at 4:21 am | Permalink
I absolutely love the old ones, beautiful unique works of art c:
anonymous mi12 | 21-Nov-22 at 1:56 am | Permalink
seeing what i get…
Filipe | 10-Mar-23 at 4:53 pm | Permalink
I want to see mine!
flupsi | 02-Sep-23 at 8:15 am | Permalink
so curious what my monster looks like!