if you are interested in doing any of these things or are already involved in a simliar project feel free to contact me.
many of these will have either been done or proposed before or may just be complete nonsense, if you have any comments please tell me.
Title: Agent Nomic
Description:
Nomic is a fabulous game, where the object of the game is to win the
game according to its rules, by making moves which typically involve
changing one or more rules of the game.
I have always thought that it might be an interesting
gedankenexperiment to build a framework that would allow computer
programs to play the game in some guise. With some heavy restrictions
on the structures allowed, of course (which should be defined).
Certainly a system which could play (if not well) against people in
this context would be a fun experiment.
References:
Peter Super's (The inventor's) description of Nomic:
http://www.earlham.edu/~peters/nomic.htm
Idea Last modified :
2006-03-03 18:12:01.000000000 +0000
Title: Owen's Bike Helmet (not a computing project) Description: I have a very large (65cm diameter) head, which is also quite long, nobody seems to make bicycle helmets which actually fit me. Some 13,000 cyclists and motorcyclists are hit by cars on our roads every year with several hundred of them being killed or seriously injured and at the moment I don't wear a helmet which worries me and those who care about me. Construct a bicycle helmet using widely available techniques (like fibreglass or carbon fibre moulding, vacuum bagging, foam moulding etc etc) and materials (fibre glass, carbon fibre, expanding insulation foam) which will be "better than nothing". A plaster cast of my head will be made available on request.Idea Last modified : 2006-03-03 18:12:01.000000000 +0000
Comic strip project ------------------- Everybody and their sister seems to make online comics nowaday a few people even go to the effort of animating them. Online comics are cool. Multimedia scripting is not a new concept macromedia's flash and more recently thingslike SMIL, are popular examples. I'm not really sure about the scope of background of this project but i have an idea that it might involve capturing some notion of an actor, as a visually embodied agent (probably in 2d, but possibly in 3d) with behaviours. The actor should try and capture the general artistic nature of a character, which might be a flexible 3d description which can be rendered into 3d or 3d using NPR techniques, or just a simple composite sprite with a number of possible orientations or swapout sub-sprites (south park) or a mixture of both. Given the difficulties of 3d embodiement (both the physical modelling and the graphical representation) it might be easier to focus on the 2d side of things. One example might be a screensaver where characters can meet and interract in a possibly comicy/comical way via some story board or something.Idea Last modified : 2006-03-03 18:12:01.000000000 +0000
Distributed Busking ------------------- The regulations controlling buskers typically limit the numbers and volumes of performers in a given location. Given the disturbing tendancy for buskers to use canned backing music to support their solo (or fake) performances i thought it would be cool if you could assemble a distributed group of buskers playing together without being in the same place.: each busker would have their instrument (and/or mouth) miked up and plugged into some wireless capable computer from which they would broadcast the signal they were playing, the output of the computer would be plugged into a small amplifier, through which they would replay the signals of all of the other buskers in the group. one could envisage the buskers playing all together or in smaller groups. Another intersting idea might be to try to augment a solo busking performance with 'intelligent' performers providing better backing etc.Idea Last modified : 2006-03-03 18:12:02.000000000 +0000
Title: Emacs/Evince/Dbus integration for Latex parsing Description: Facts: - PDF can contain hyperlinks, which can reference external URLS, or more importantnly internal relative URIs. - Latex can generate the correct magic to make these hyperlinks work for references and citations in latex documents. - Several environments which can edit Latex (primarily Kile,LyX and Emacs (v22 or later)) support external input at run time for some definition of external input. - Evince is the new ps/pdf/dvi viewer for gnome. - Evince is "Dbus aware" (i.e. it uses dbus to open new documents in a single process. - Evince is pretty good a viewing PDF files. The problem: When i'm writing latex (in emacs ) , I often end up getting lost looking up references and figures etc. I think it would be really cool if I could have evince open with the latest version of my document, and have it such that when a given option is turned on in emacs and i click a hyperlink in my PDF document, emacs would jump to the definition (or the source, either or both would be interesting) of the link in the document. In order for this to work I am assuming that there exists a relatively quick and sensible way of mapping whatever PDF is calling the link/target and the latex tag in the document, if you can't then there is a larger problem. If the above is possible, and evince supports hyperlinks, then: Evince would have to be modified to generated a dbus signal which says "Clicked on hyperlink XYZ in document URI" Our chosen LaTeX interpretter would have to have the means for listening for this type of event and performing an operation "Jump to tag Map(XZY) in document URI", my feeling is that as you don't have a concrete way of linking URI back to your source, a small ammount of guesswork might be involved here (which i'm happpy to accept). However you do it, we assume that the relevant client is capable of keeping track of all of the tags in LaTeX files it currently has open (somehow). In Kile implementing a DBUS listener would be fairly trivial, as would it be in LyX (both fairly extensible, C++ programs). In emacs (which i really care the most about) the problem is slightly harder -- as (as far as i know) there are no dbus-->elisp bindings (no big surprise there). Four possible hacky or burdensome ideas spring to mind:: - Bypass Dbus and just get evince to notify your client (i.e. emacs via emacsclient) directly - pretty evil and i doubt it would make it into evince upstream. - Implement some kind of DBUS support directly into emacs source technically the most ideal thing to do, but i don't see this being accepted upstream with any great amount of enthusiasm (although you never no). Upstream integration also assumes that it would make it into a version of emacs in time to keep up with any changes in Dbus, (or before the next ice age), given how slowly emacs turns over. There is the possibility of writing a dynamic library to support Dbus in emacs, but as far as i know emacs doesn't suport this at the moment (although xemacs does). - Implement some kind of hacky dbus support directly in Elisp - given the complexity of the dbus protocol, this is no small order, for what would only be a marginally useful extension. - Implement a seperate DBUS service, which when activated sat around and listened for the relevant messages and passed them along to emacs, by way of the the emacsclient protocol to inject the relevant (jump-to-LaTeX-tag "xyz" "uri"). into some stub code on the emacs side which did the updates. This has the downside of needing a permanent daemon sitting around, but would probably work. Some other (related fixable) problems: - As far as i can see Evince does not currently support PDF hyperlinks it /should/, - Evince (for me at least (on ubuntu breezy)) is pretty unstable, i hope this problem will fix itself.... - Emacs 22 isn't out yet, and will be having been going to be out for nearly six months now (ao 2/06). Comments: 5/3/06: Tristan ( http://www.pyrate.net ) pointed out that xdvi already has an inverse search feature (which evince doesn't support ) which has similar functionality (Ctrl + click on a document and then view the location in an editor). This implies that at least for DVI there is a nice way of solving the problem of finding out where you are in a document (compiled with latex -src). It would be good if this could be extended to PS and PDF (I typically use features like pstricks, which don't display in the DVI). The DBUS approach still has potential however as its more general, and could be mapped into dvi by changing the editor command.Idea Last modified : 2006-03-05 17:15:08.000000000 +0000
A platform for GL agent visualisation. -------------------------------------- See embodied agents, agent platforms (Jade,April) are typically programmed in such a way as they can be deployed if not ubiquitously then across a broad range of platforms,(windows/unix/PC/palmtop etc) methods for these agents communicating with humans also exist, typically build on top of existing graphics libraries (AWT/swing) or using their own internal cross-platform systems (DialoX) however we are usually limited to doing basic dialog type interractions due to the low watermark of standardization across graphics systems. In some situations we would like to be able to use high-performance hardware accelerated graphics to interract with users, specifically when doing things like embodied agents, where using richer, possibly 3d models is actually easier than trying to build 2d analogous systems. specifically focussing on the April Agent platform, it would be useful to create at least a bridging layer between agents and accelerated 2d/3d displays, different modes of interraction may be considered, such as in-place models, and cursor driven graphics. OpenGL provides a cross-platform, widely accepted standard for accellerated graphics abstraction.. -------- you may wish to focus on just the abstraction layer, by creating an agent-oriented interface to the underlying graphics abstraction. a much more interesting application whould be a system for the creation of 3d embodied agents for communicating with humans, on a basic level you should consider problems such as agent initiated dialigical interraction, possibly using existing toolkits such as dialox, where an embodied agent would be able to ask questions of the user and provide a means for response based upon a template library. At a higher level, you may wish to consider the expression of things like emotion, urgency and gaining the users attention. a number of aspects will need consideration: - the definition and description of an embodied agent - its shape, behaviours etc - abstractions and scripting of agent behaviours - interraction spaces, intially you should consider individual agents interracting with a single user, however you may wish to extend your work into the visualisation of two or more embodied agents interracting or to include objects which model either dialogical entities that the user and the agent can interract with. you may wish to consider doing solid-body modelling .Idea Last modified : 2006-03-03 18:12:02.000000000 +0000
Title: 'Helper' for electronic quiz machines Description: Pub quiz machines have been around for some time and are very good at stealing your money. Typically the machine poses a number of questions in varying subjects including general knowledge and offers some reward for correctly answering a sequence of questions correctly. Questions are posed and a number of alternative answers are typically given one of which must be chosen within a typically limited time frame. A number of directions are possible: Develop a vision capture system which is capable of reasonably extracting text from captures of pub-quiz type machines from a web-cam class camera (i.e. 640x480 or 1024x768) in REAL TIME under the difficult circumstances one expects to see in a public house (i.e. low light, smoke occlusion, non-direct screen angle, varying color schemes, different fonts etc, beam interference from the monitor/TV screen). Investigate the feasiblity of determining correct response reccomendations by generating queries to large, unstructured data sets (like google) or similar sources and generating feedback to a user. Consider situations where a certainty metric for a given answer might be given such that the multiple choice answers can be ordered, or such that alternative answers (such as "I don't know") can reasonably be generated. Combining the two systems above with a laptop with some wireless internet capability (i.e. GPRS or 802.11b) to help somebody with pub quiz machines. Of course this system should probably not be used in the wild as it may be illegal (i'm not sure, you should check this). Requirements: The ability to gather a reasonable sample set of captures. Some understanding of computer vision techniques (image processing).Idea Last modified : 2006-03-03 18:12:03.000000000 +0000
Semantic web project ideas managment ------------------------------------ create a RDF schema & interface & knowledge base for managing these ideas.Idea Last modified : 2006-03-03 18:12:03.000000000 +0000
Title: Instant Messaging for Agents Description: Instant messaging tech like MSN-messenger, Yahoo instant messenger, ICQ, AIM and jabber have all taken off in a big way as media for quick, casual interaction between humans. In general users can see whether the other party is online and sometimes other information like whether or not they want to be contacted. It would be interesting to see to what extent this can be integrated as a user-interface mechanism for autonomous agents. Focusing particularly on jabber (which is the only technology mentioned which is both standardised in a sensible way (based on published XML schemas), with a number of open source implementations) investigate different ways in which IM can be used for human-agent interaction. There are a number of possible applications from simple notifications to user queries. Related Reading: Agents (various things) jabber: http://www.jabber.org/Idea Last modified : 2006-03-03 18:12:03.000000000 +0000
Flat panel kitchen display -------------------------------------------------------------------- Keywords: Linux, hardware Description: I have a relatively old laptop, which has just about completed all of its laptoping (the battery has long since expired, and it fries memory if you move it about). With a 14" XGA TFT display, i would like to turn it into a stationary flat panel picture frame type device to sit on my kitchen wall with the following functionality: - Playing music while i cook - Displaying recipes - Displaying movies/live TV (via mplayer/videolan for example) - Possibly displaying email/web browsing etc. although less so. The plan is: - Dismantle the machine (partially done) - Establish the best way of managing the user interface (a touch panel would be nice, but you can't buy overlays cheaply). - Design and build a case - Write/modify some software to assist some of the tasks Some ideas had for user interface included re-using a cheap, small PS/2 Keyboard with a touchpad, a USB game controller, the top of a wheel mouse etc.Idea Last modified : 2006-03-03 18:12:03.000000000 +0000
Title: Literature & reference meta-data embedding and access Description: Researchers accumulate large bibliographies of read and related work including their own, increasingly (especially in computer science) reference material is becoming available in preprint form as PS/PDF documents for free. These documents tend to accumulate on a researchers file store with variying degrees of management. The management of personal bibliographical databases is typically seperated from the documents which the entries actually reference, several desktop systems support file meta-data which is either derived from the contents of files, derived from external sources or simply stored and edited in relation to files. Ignoring the troublesome issues of meta-data management in general (i.e. where does the meta-data go when a file is copied onto a device which doesn't support it) it would be great to have a integrated system (primarily for Gnome, which is what i use) for attaching bibliographical information to files on the file system in such a way is to simplify its management and use (i.e. generating bibtex files for bibliographies. Nautilus (the Gnome file manager) has a passable system for storing and file meta-data and editing it through the file manager interface (see the nautilus notes system) write a plugin for editing/attaching bibliographical information to papers in PS or PDF format. The idea here is to find a solution which doesn't rely on idealising the world (i.e. standardizing on bib-data or referencing) but works enough to be useful. References: Nautilus: http://www.gnome.org/projects/nautilus/ BibTeX: http://www.ecst.csuchico.edu/~jacobsd/bib/formats/bibtex.html The UKOLN Bib-man pages: http://www.ukoln.ac.uk/bib-man/Idea Last modified : 2006-03-03 18:12:03.000000000 +0000
Title: Peer to Peer Massively Multiplayer Online Roleplaying Games Description: 3d environmental MMORPGS are all the rage at the moment, existing systems operate using a set of trusted central services which pool resources and maintain the legal state of the game, with players operating operationally thin clients which on the whole are only responsible for providing user interface functionality and rendering. The purpose of this project is to investigate the prospect of developing a distrubted environment for enforcing game logicIdea Last modified : 2006-03-03 18:12:03.000000000 +0000
Print Coding and recovery for backup.
-------------------------------------
Fortunately nowadays people tend to care quite a bit about backing up
their data. Typically we burn stuff to CD or DVD or put it on magnetic
tape where it can be stored and retrieved at a later date.
Unfortunately both of these media are susceptible to degredation over
time, CD inks can expire even in the absence of UV light and magentic
tapes are suscpetible to corruption in the presence of large EMFs,
water or fire.
Backup policies for large organisations typically involve off-site
storage and multiple redundance for very important data, solutions
which are typically not available for small organisations or personal
users.
With the ongoing increase in integration of computers into everyday
life for normal people, it might be useful to develop a very low
volatility backup mechanism for relatively small amounts of data
(which may include digital certificates, encryption keys, personal
information etc).
I propose the use of conventional wood-pulp paper as medium for
storage with the printer as a means for generating backups and a
conventional desktop scanner as a means for recovery. One could
visualise a situation where a chunk of backup data was encoded and
printed to one or more bits of paper, so that it could be stored
safely and then recovered at a later date.
One should consider:
- The coding necesary, at least including error
checking and if possible error correction, also you may want to
consider variable degress of redundancy.
- The optical representation of data on the page, considering
likely corruption mechanisms (small ink blots, folds tears
etc.). While also considering the resolution of the output
printer and the properties of printing on different
paper/printer types.
- Data recovery using an off-the shelf scanner at a resonable
resoulution (say between 600 and 1200 DPI) and document
reassembly.
I expect the storage capacity to be very low, (possibly as low as a
few killobits per page)
Required equipement:
- A printer
- A scanner
Prerequisite knowledge:
- Some knowledge of coding and information theory.
Idea Last modified :
2006-03-03 18:12:04.000000000 +0000
Pen-based Vector Graphics/Diagramming package ---------------------------------------------Idea Last modified : 2006-03-03 18:12:04.000000000 +0000
Title: Physical modelling of guitar fingerings and automatic tabululature production Description: Unlike many classical musical instruments, multi-stringed, two-handed instruments like the guitar have many different ways of playing the same note, or set of notes. For a given chord, some finger positions are impossible for a performer, and others are difficult. Likewise, over time, some transitions between notes and chords are difficult or impossible. Additionally a guitar can be tuned in many different ways which may in turn affect, and different tunings can have a significant effect on the "difficulty" of a scores performance. I'm interested in three things: Quantifying some notion of "difficulty" of specific chords and movements over range of playing abilities in relation to a phyiscal model of the hands playing the guitar. Applying this model to the automatic production of tabulature from a musical score. Applying the same model to the investigation of alternative guitar configurations and tuninings. References: http://www.tml.tkk.fi/Research/DIVA/past/publications/ICMC96/rjh/posterpaper.html http://www.harmonics.com/lucy/lsd/frets.html http://www3.interscience.wiley.com/cgi-bin/abstract/108061990/ABSTRACT?CRETRY=1&SRETRY=0Idea Last modified : 2006-03-15 20:23:21.000000000 +0000
A programming language reference documentation documentation system. ------------------------------------------------------------------- Keywords: RDF, Ontologies, Programming Languages. Programming languages typically come with a whole pile of Reference documentation, unfortunatly for must of us, the last thing we want to do when programming is read the documemtation. This problem is compounded by the fact that typically the last thing programming language and API authors want to do is maintain documenation. This problem is then multiplied by complex programming environments with large run-time libraries, such as C++, Java and various dialects of prolog, lisp and other languages (and APIs). It is often hard to find out a) which feature it is you want to use for a particular task, and b) how to exactly use that feature. It is often the case that another programmers assistance will rapidly solve your problems with both cases. The system proposed is aimed primarily at solving the second problem: On the whole it is now common practice for programmers to include at least basic documentation on the features provided. however fcr all but the lucyest languages this documentation is usually fairly terse, and lacking in things like examples, full documentation and quirks. + design an ontology (probably in RDFS, as the target audience is humans) for describing language documentation annotations and examples. + Using RDF create a meta-documentation system for annotating programming language documentation such as javascript etc, the system should be external to the actually documentation systems that the annotations refer to, i.e. the knowledge base containing the annotations should be completely seperate from the programming documentation itself. you will also need a meens for viewing the annontaions alongside the actual programming language documentation. the system should allow multiple authors to submit annotations to multiple knowledge bases and allow annotations for a given language article to be drawn from multiple knowledgebases. you may wish to consider rating systems to deal with the problem of spurious submission and incompetancy (author competency rating is a more interesting problem here) Initial targets for language documentation should include at least JavaDoc and may also consider other documentation systems such as ciao prolog LPdoc, gtk-doc, doxygen etc etc. See-also: javadoc: http://java.sun.com/j2se/javadoc/ alexandria: http://jakarta.apache.org/alexandria/index.html gtk-doc: http://www.gtk.org/ (somewhere, not a great deal of public docs) yelp: http://www.gnome.org/softwaremap/projects/yelpIdea Last modified : 2006-03-03 18:12:04.000000000 +0000
Real guitar hero ------------------- Guitar hero is cool, unfortunately the one thing it isn't going to teach you is how to play the guitar. Two problems: Write a piece of software inspired by guitar hero which accepts real guitar input (i.e. a stream of fret/pluck/chord combinations over time) which aids in teaching people how to play the guitar. GH is implicitly 2D (frets/over time) real guitars have more strings so visualsing the current state is going to be a problem. I have a Roland MIDI guitar pickup which extracts notes directly from each string, this should provide sufficient level of detail to drive the above program, however it would be much more interesting to try and extract this information automatically from the single-line acoustic output of the guitar.Idea Last modified : 2008-05-21 14:35:30.000000000 +0100
Title: Semantic linking in PDA personal information management Description: I have been involved in the GPE ( http://gpe.handhelds.org/ ) project for a while now, it has struck me that in a closed (i.e. palmtop) environment, where there is little scope for individual "way cool" applications and (currently) scarce in the way of politics or idealism, there might be reasonable scope for applying semantic web technologies (or just ideas) like RDF, RDFS, DAML+OIL or OWL to create an integrated system for creating and managing relationships between objects of user data like contacts, events and other things like bookmarks or more general things. It may be that a single knowledge-based is the solution or a mechanism for rationalising several different knowledge bases is applicable. There has been some work on RDF/sematic web-oriented storage and management not limited to Jena ( http://www.hpl.hp.com/semweb/jena.htm ) , Joseki ( http://www.joseki.org/ ) and rdfdb ( http://rdfdb.sf.net/ ) . The good/bad news is that most existing tools are java oriented, which is wholly inappropriate (no really) for every day use on a PDA. You may consider exposing the information in such a way as to make it consumable by information/management agents. You could consider more mundane problems such as synchronising the information with existing services (i.e. evolution http://www.ximian.com/evolution ) or more generally using syncml ( http://www.syncml.org ). Further Reading: The idea of general hypermedia is _old_ so there is a lot of backstory (which is missing here) RDF: http://www.w3.org/RDF/ RDFS: http://www.w3.org/TR/rdf-schema/ OWL: http://www.w3.org/2001/sw/WebOnt/ GPE: http://gpe.handhelds.org/Idea Last modified : 2006-03-03 18:12:04.000000000 +0000
Title: Mob Instigated Semantic Annotation and Ontology definition, in a Large Knowledge representation Environment Description: Wikipedia, a Wiki oriented encyclopedia, is rapidly becoming one of the largest single sources of human readable information relating to the real world on the web. With well over 200,000 articles and thousands of contributers. Wikipedia (and other wiki systems) works by relaxing the traditional constraints on write-access to information on the web, by allowing pretty much anybody to modify the contents of the encyclopedia pretty much all of the time(*). Govornance relies on a mixture of the concience of authors and contributers: - not to submit incorrect, offensive, or useless information or remove useful information. - to restore/fix entries where that has occured. Entries in wikipedia are essentially human-readable with little computer-readable information included, while this is fine for human browsers, a lot of the information encoded within wikipedia may be considered useful to electronic agents, and as such must be represented in a form which they can understand. The puropose of this project is as follows: Assuming the target system is a content management system similar to that of wikipedia (with the same norms about contributing content and making edits) investigate the technical issues, and potential uses of annotating entries using computer readable metadata. Additionally the ontologies defining the types and semantics of those annotations may also be considered as part of the wiki. Additionally aspects such as how agents actually access (in terms of protocols/interactions) this information ay also be considered. The problems of information duplication and inconsistency will present themselves and must be considered. The use of existing standards for knowledge representation and ontology definition should be considered (See references). Interesting starting points for content might be areas with either well-defined ontologies (such as the taxonomic system) (i.e. Llama), or areas where there tends to be a lot of RDF-like fact data in entries already (such as geographical and political information about towns, and countries) (i.e. Conway%2C_South_Carolina and Costa_Rica). Scope: This project is extremely broad, and can be seperated into two equally broad problems: - How the annotations themselves are defined, editied and retrieved (and their relation to the corresponding textual information) in a wiki style. - How to go about the process of providing a definition of the semantics of those annotations in terms of some kind of ontology (which can be maintained in a similar fashion). The latter problem is a difficult one for a number of reasons, including that by nature the ontological information may not be consistent or complete, and will be changing rapidly. * There are a number of limited mechanism for preventing and limiting the affects of wiki vandalism, and active disputes like IP blocking and limiting the number of edits that can be made in a given time frame, but they are rarely used. References: Wikipedia: http://www.wikipedia.org/ RDF: Resource_Description_Framework http://www.w3.org/RDF/ RDFS: http://www.w3.org/TR/rdf-schema/ OWL: http://www.w3.org/2001/sw/WebOnt/ Protege: http://protege.stanford.edu/ PHP: http:://www.php.org/ The Wiki WayIdea Last modified : 2006-03-03 18:12:04.000000000 +0000