{"id":2222,"date":"2013-04-01T09:18:38","date_gmt":"2013-04-01T16:18:38","guid":{"rendered":"http:\/\/blog.mozilla.org\/ux\/?p=2222"},"modified":"2016-02-19T14:41:35","modified_gmt":"2016-02-19T06:41:35","slug":"firefox-next-evolving-the-user-interface-using-genetic-algorithms","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/ux\/2013\/04\/firefox-next-evolving-the-user-interface-using-genetic-algorithms\/","title":{"rendered":"Firefox Next:  Evolving the User Interface using Genetic Algorithms"},"content":{"rendered":"<h3>Optimizing the Interface is Hard<\/h3>\n<p>Creating the perfect Firefox interface is a challenging problem. Every user has their own set of common tasks. The challenge is in defining a common &#8220;default&#8221; interface that maximizes task success for the most people, on the most tasks. Using designer insight alone, it&#8217;s not always easy to know the impact of each design element!<\/p>\n<h3>Genetic Algorithms<\/h3>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/Genetic_algorithm\">Genetic Algorithms<\/a> are well-suited to suggesting novel solutions to complex optimization problems.\u00a0 If one can define the right optimization (fitness) function, GA can calculate the impact of including and placing elements. Using data recorded from<a title=\"Firefox Heatmap Study 2012 \u2013 Results Are In!\" href=\"http:\/\/blog.mozilla.org\/ux\/2012\/06\/firefox-heatmap-study-2012-results-are-in\/\"> Test Pilot Heatmap studies<\/a>, we have defined a set of &#8220;Web Activities&#8221; that describe what users actually do using Firefox. These included &#8220;search&#8221;, &#8220;surfing the net&#8221;, and &#8220;content creation&#8221;.<\/p>\n<h3>Evolving the interface<\/h3>\n<p>We divided the visible interface space into 14,000 &#8220;cells&#8221;. Each of the 100 possible interface elements were given starting positions, and allowed to grow randomly until all cells were used. We then simulated a set of common user tasks using each random interface, proportional to how often those tasks occurred in the recorded Test Pilot data set. An interface &#8220;did well&#8221; if the user didn&#8217;t have to move the mouse much to complete the task. Top performing interfaces were kept and allowed to &#8220;mutate&#8221;, by allowing UI elements to &#8220;grow&#8221; or &#8220;shrink&#8221;.\u00a0 When interface elements got &#8220;too small&#8221;, they were placed behind the &#8220;more options&#8221; element, and assigned a higher cost to access.<\/p>\n<h3>Firefox Next<\/h3>\n<p>Within 700 generations, good candidates started emerging, and by generation 1100, convergence was achieved. We then chose the most visually appealing one as our candidate. \u00a0 GA led to some ragged edges, so did some visual cleanup to squarify elements.\u00a0 This &#8220;cleaned&#8221; candidate preformed with 98.1% of the effectiveness of the original.\u00a0 The result, which we are calling Firefox Next, appears below. Bubbles describe the salient features. In particular, note:<\/p>\n<ol>\n<li>Careful balance between user needs for content, and user desire for web advertising.<\/li>\n<li>Much larger &#8220;back&#8221; and &#8220;scroll&#8221; elements &#8212; the commonest interactions users have with browser.<\/li>\n<li>Page content de-emphasis, so that users can achieve other tasks on the internet easily.<\/li>\n<li>On-screen keyboard, for easy form filling and content creation.<\/li>\n<\/ol>\n<p><a href=\"http:\/\/blog.mozilla.org\/ux\/files\/2013\/04\/firefoxnext.001.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-2224\" alt=\"Firefox Next:  Interface Design Evolved using Genetic Algorithms\" src=\"http:\/\/blog.mozilla.org\/ux\/files\/2013\/04\/firefoxnext.001-252x189.png\" width=\"252\" height=\"189\" srcset=\"https:\/\/blog.mozilla.org\/ux\/files\/2013\/04\/firefoxnext.001-252x189.png 252w, https:\/\/blog.mozilla.org\/ux\/files\/2013\/04\/firefoxnext.001-600x450.png 600w, https:\/\/blog.mozilla.org\/ux\/files\/2013\/04\/firefoxnext.001.png 1024w\" sizes=\"(max-width: 252px) 100vw, 252px\" \/><\/a><\/p>\n<h3>Conclusion<\/h3>\n<p>Bringing quantitative methods into design is an emerging field. Firefox Next demonstrates that even without expert designers, quantitative methods alone can create a beautiful, easy-to-use interface.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Optimizing the Interface is Hard Creating the perfect Firefox interface is a challenging problem. Every user has their own set of common tasks. The challenge is in defining a common &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/ux\/2013\/04\/firefox-next-evolving-the-user-interface-using-genetic-algorithms\/\">Read more<\/a><\/p>\n","protected":false},"author":395,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"coauthors":[],"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/posts\/2222"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/users\/395"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/comments?post=2222"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/posts\/2222\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/media?parent=2222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/categories?post=2222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/tags?post=2222"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/coauthors?post=2222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}