Showing posts with label recreational neuroscience. Show all posts
Showing posts with label recreational neuroscience. Show all posts

20100901

Welcome to the Future : Weaponized Sound

I'm not talking about the LRAD*, this is far more interesting. Thingiverse user neurothing ( or should I say Brown University neuroscientist Seth S. Horowitz ) lists among his interests "creating neurosensory algorithms for weapons class sound". In addition to the implied military applications, it seems he can use a mysterious sound algorithm to modulate emotion, attention, and state of mind. He has started a company called neuropop to commercialize these effects :

Our proprietary Neurosensory Algorithm (NSA) technology can be used to modify virtually any sound or music to activate specific parts of the listener’s brain to encourage sleep, reduce stress, enhance attention, or create specific mood-states. We are currently developing health and wellness, entertainment, and gaming products.
Finally, I feel like I'm living in the future. I am, of course, reminded of BLIT. Neuropop claims uses such as meditation, altering state of mind, enhancing effectiveness of advertisements, and providing music for movies and video-games better tuned to manipulate the listener. You can even test out some of the simpler effects on their website. If you guessed that binaural beats have something to do with this, you're right, but they also use a diversity of other techniques, not all of which appear to be published, to achieve much more than binaural beats are capable of. Having not (yet) experienced their auditory stimuli, I can't verify that their technique works. However, having seen what a couple of colored flashing LEDs can do to my visual cortex, I'd wager their effects are real. The big question, then, is weather or not Professor Horowitz was joking about the "weapons class sound".

*Having witnessed the LRAD in deployment I should note that some young folk these days are immune to it, due to a decade or more of loud rock concerts. However, if your hearing happens to be intact this machine will quickly induce the accumulated damage of a decade of loud rock concerts (hyperbole), which is painful. I imagine ultimate military or riot control applications of Horowitz's sound algorithms might be piped through something such as the LRAD, but perhaps could induce confusion at a less damaging decibel level.


20100825

Why are some aggregates "smarter" than their individual components and others are not?

So I had a very broad question which I had been dimly aware of for some time, but I've never asked it. I'd be interested what some people have to say... I'd almost consider trying to post this on a site like Math Overflow and seeing what people say, even though its not really what they go for I think (I would probably phrase it differently). Please chip in your 2 cents.

In many many fields we have this idea of simple units acting together in cohesion to create some very complicated aggregate body. In some cases, for instance, Brains, the behavior of a single neuron is thought to be quite simple, and "unintelligent", while the overall body displays substantially more complexity of behavior, and capacity to adapt favorably to various environments and situations. On the other hand, maybe the clearest example of the opposite is the "stupidity of crowds". A crowd of people is thought to have dramatically less problem solving ability than a single person. A single person is frequently able to able to monitor their spending and manage a budget appropriately for instance, while the California legislature is not.

Other examples of systems may not be so clear cut. For instance I'm not really sure if an electron is smarter than a cloud of electrons. In areas like probabilistic combinatorics, we can frequently create large probabilistic systems composed of very simple components which are coupled together in simple ways, but about which we can say almost nothing in terms of the behavior of the whole system. In statistical physics I suppose it is the opposite -- predicting the motion of a particle, given its local environment, is thought to be extremely difficult, and typically modeled perhaps using Brownian motion, yet we can deterministically model the evolution of the gas as a whole, and develop useful statistics to "characterize" the macrostate.

I suppose that in most of science, the only time we study aggregates of "smart" components are where the components are people or animals. Perhaps we do not recognize other components as smart?

Its not clear to me what precisely is different in the way that societies are built of humans and the way that brains are built of neurons. You might suggest humans can move freely for one, but in most cases, it seems that people establish some local network of people they trust and respect, through which they receive information, and these parameters of trust and esteem become established and then fine tuned as life progresses, perhaps not unlike neural network weights. Obviously the aggregator function is substantially more complicated.

Perhaps you might suggest that for some problems, networks of humans are quite effective -- for instance, we can design space shuttles, and a single individual probably cannot do that. Its only political problems that individuals fail at. Perhaps you can point out the problems that brains fail at by analogy... certain long term risk reward tradeoffs? drug addiction?

Of course the answers you get will depend heavily on the formalism you choose for computational ability. What I would like to ask is this:

1) Are brains organized from subunits in terms substantially different from societies / other schemes?
2) Given subunits of a certain design with a certain computational power under some formalism... VC dimension which can be learned efficiently? Topological Entropy of the analogous dynamical system?.... how much computational power does the aggregate possess, when formed under one connection scheme vs. another?

Obviously 2 is going to be pretty hard to answer... and will depend on your answer to 1 which may be contentious. Pitch in your 2 cents.


20090902

Do It Yourself : How to Build Hallucinogenic Goggles

This post will describe how to construct a pair of goggles which can be used to induce geometric visual hallucinations (1 2 3) via strobe light patterns. This tutorial should be accessible to anyone familiar with Arduino, and I do not cover details of the electronics design. These goggles can be constructed for 25 to 50 dollars, depending on how good you are at scavenging parts.

WARNING : this and similar projects have been known to induce seizures in susceptible individuals.


Device Summary

This device consists of three major components : a physical interface to provide the visual stimulation, electronics to control the physical interface, and code which governs the behavior of the interface. The physical interface consists of ping pong balls in swimming goggles with LEDs inside. The electronics are an Arduino pro-mini, and a few additional interface parts. The code is Arduino SDK C style driver code.

Component 1 : Physical Interface
Update : This later post suggests there might be an easier, faster, and more durable way to construct the goggles. The design posted here works fine, but is tricky and time consuming to make, and also fragile.

parts :
  • 4 to 10 Ping pong balls
  • 2 RGB LEDs, frosted clear casing (this is important, sand down the outside if not frosted)
  • 2 4x1 male headers, .1" spacing
  • 2 4x1 female headers, .1" spacing
  • 1 8x1 female header
  • 1 Dolfino medium sized silicone adult swim goggles ( had to buy in a 3 pack )
  • 2-3 ft of elastic ribbon
  • 3-4 ft of ribbon cable, only 8 channels required. Other cables with 8 channels also work.
Description :

Ping-pong balls, cut as if by a plane penetrating approximately 15% of the ball diameter, and rejoined with with smaller section inverted to form a cup like structure. RGB LEDs are affixed via solder to male headers which penetrate the corner of the ping pong balls (near the joint of the two sections). Light is emitted from the LEDs, reflects off the back of the larger section of sphere, and creates uniform illumination in the smaller cup. Two ping pong balls are nestled in a modified pair of swimming goggles. A ribbon cable connector is affixed with female headers which interface between the male headers on the spheres, and the male header output from the electronics. Note that logos or text printed on the ping pong balls can usually be removed with acetone ( nail polish remover ).

Tools :
  • one minute epoxy
  • superglue
  • soldering iron
  • solder
  • sharp razor
  • scissors
  • medium to fine sandpaper
  • wire cutters
  • tweezers
  • pin
  • toothpick, etc. for mixing and applying epoxy
Instructions :

Construct (2x) ping pong ball shells which are mirror images of eachother:


  1. Imagine the section cut by a ray displaced 34-40 degrees from vertical and rotated around the z axis. Alternatively imagine the section of a circle cut by an arc of 70-80 degrees. This partition defines the sizes of the large and smaller sections which form the spherical diffuser. You will not be able to cut both sections from the same ball, since material is lost in cutting, and a 1-2 mm edge is required for overlap to bond the sections together. Additionally, neither side should have a company logo on it, since this will ruin light diffusion. Ping pong balls have a ridge where the two halves are joined in manufacture, avoid cutting through this ridge since it will create an uneven joint that will prevent the balls from being re-assembled. I don't have exact measurements, but on my model the diameter of the circle at the interface of the two sections is 1.365"
  2. Prepare the larger section first, as described above. With a razor, cut a crude circular hole in the ping pong ball, perhaps circumscribing the logo if one is present. Slowly and carefully expand this hold by cutting around its circumference with a pair of fine scissors. Stop approximately 2mm from the final desired hole. At this time lightly sand the hemisphere on a flat piece of medium to fine sandpaper to create a fine, flat interface.
  3. From a new ping pong ball, prepare the smaller section. Cut the ball crudely in half using a razor, then carefully trim one half down to the intended size of the smaller section, plus 3mm.
  4. The smaller section should rest in the larger cup, and be large enough not to fall inside. Do not glue the sections together yet.
  5. Using a pin, create evenly 0.1" spaced holes for the male header in the larger section as shown. You may want to practice on a spare bit of plastic first. Insert the short end of the male header through these holes, and super-glue the header in place. Trim the LED leads so that the LED rests as shown, and bend down the last 2mm of leads to align with the inner header pins. If you do not have frosted housing for the LEDs, lightly sand the exterior of the LED with fine sandpaper. Clear housing creates light that is too focused for uniform diffusion in the eyepiece. Tin both the LED leads and the header pins in advance. Solder the LED onto the header from the inside; do not to melt the plastic. Super-glue the smaller piece into the large piece to make a finished eyepiece. Once the super-glue thoroughly hardens, you may want to finish the joint in the plastic with additional careful trimming and fine sanding ( don't sand through the joint )
  6. The final pair of eyepieces should be mirror images of each other, which is just a matter of correctly positioning the LED leads :

Construct ribbon cable connector:

EDIT : this is a terrible, tedious, way to build a cable. The correct way involves some sort of headers that are actually designed to clamp into ribbon cable, or using these little header connectors that use pins which clamp onto the wire (pins sold separately ?). I will post a writeup if I build a pair using better technique.


I found that it was important to have a separate cable that would disconnect from the goggles under force. This prevents the inevitable accidents from destroying the tediously constructed eyepieces, and modularity makes the whole thing easier to repair. This step is open to improvisation. Here is what I did :
  1. Tear a band of 8 lines from a section of ribbon cable. The cable should be as long as you would like the strap from the electronics to the goggles to be. I think 3-4' is fairly good.
  2. Cut the ribbon cable diagonally such that the spacing between the lines matched the 0.1" spacing of the 8 pin female connector
  3. Strip 2mm bare wire of each line
  4. Solder the line to the 8 pin female connector. Tinning the contacts in advance helps.
  5. Apply 1 minute epoxy to the contact, to provide both insulate and structural stability. Make sure there are no shorts between lines before you do this.
  • EDIT : Hot glue works better here, for a number of reasons. Hot glue remains flexible once cool, which allows for smooth transfer of strain on the cable without breaking the contact. Epoxy hardens, which results in an inflexible interface which slowly cuts and degrades the cable. Breaking of the cable, as well as squishing of the ping-pong balls, seem to be the two most common failure modes of this design. If anyone knows of any commercial connectors that would be better for this design, let me know.
  • Tear the line in two for ~1.5', creating a split from 8 lines to two ribbons of 4 lines. Prepare 4-pin female headers similarly to the 8 pin female header, in a symmetric fashion as pictured below. I used a clip that came with the swimming goggles' strap to stabilize the point where the cable splits in two.
  • The assemblage of this connector cable with the eyepieces should have the indicated pinout at the 8 pin female header :

  • Modify swimming goggles and complete physical interface assembly :

    1. Locate suitable swimming goggles. This is harder than it sounds. The only goggles I found suitable were the mid-sized silicone pair in a three pack of Dolfino goggles. The goggles must be of a correct size to snugly fit the eyepieces, and be able to deform to the circular shape of the eyepieces. The goggle must also be able to hold together with the lenses removed. Many goggles are bridged by an attachment to the lenses, rendering them unsuitable. Ideally, you would also be able to affix a strap to the goggles even with the lenses removed. Due to the limited availability of suitable goggles, this step may require improvisation.
    2. Remove the lenses. In the pair I used, the lenses were held in with a weak silicone glue. It was difficult to remove the lenses without damaging the goggles. Superglue proved effective at repairing large accidental tears in the silicone goggles
    3. Attempt to insert the eyepieces. If necessary, create an opening in the silicone to feed the male headers though. I used either a razor, or a hole-punch, depending on the thickness of the silicone. Insert the eyepieces.
    4. Create a head-strap. I used elastic ribbon, threaded through the hole used for the header pins, held in place by plastic loops, and super-glued back on to itself. One end was folded and kept free to adjust tension.
    5. Attach ribbon cable headers to the eyepieces, check that you have oriented the ribbon cable pinouts correctly.
    6. If the eyepieces are loose, optionally super-glue them in place to the goggles. Note that this will make repairs and maintenance more difficult.


    Component 2 : Driving Electronics

    Parts :
    • 1 Arduino pro-mini ( and FTDI breakout for programming ) (other options 1 2 3 4)
    • 1 6x1 right angle male header
    • 1 8x1 right angle male header
    • 2 12x1 straight male headers
    • 6 Resistors for the 6 LED channels as determined by your board voltage and LED datasheet (voltage, current) specifications. Use this handy LED resitor calculator. For 3v boards, a resistor may be un-necessary for the (green, blue) channels.
    • hookup wire
    • 1.5"x2.5" radioshack protoboard
    • Battery Pack
    • Power Switch
    • optional : LED displays, pushbuttons for a hardware user interface. I used a 16 segment display for some of my models, and a couple designs have pushbuttons to cycle through the various strobe light patches.


    Description

    There are probably a million and one ways to make 6 LEDs blink quickly in a controlled fasion. You can drive your LED goggles however you wish. I used an Arduino because the programming interface is easy to use. I also hope to figure out the serial interface to the arduino so I might write a control sketch in processing, for real time tweaking of the waveform patterns. My construction consisted of an arduino board, with the 6 pulse-width-modulation ( PWM ) output pins attached to the LED goggles. I also attached a 16 segment display and some push buttons to the design, but you can experiment with whatever features you wish.

    Tools : Soldering iron, Solder, Soldering accessories

    Assembly of an example control board :
    1. Since the arduino chip rests on raised headers, and the 16-segment LED display has ~1.5mm clearance, we can hide some of the circuitry underneath these components. Since this is a 3 volt board, I only needed 56ohm resistors for the red channels. Your LEDs and board may have different constraints. Also solder on the 6x1 right angle male header to the Arduino pro-mini serial FTDI interface ( I think thats what those 6 pins are called anyway ).
    2. We then solder in place the arduino chip and LED diplay. The LED display is set up for multiplexing, so the corresponding segments of each digit are connected, and the display is driven by alternately drawing both digits, controlled by switching on and off the common cathodes. Since I was short on pins, several display pins also double as input pins for the switches. Every so often, the sketch switches the display pins into read mode and polls the state of the buttons.
    3. I used a lot of tedious surface-mount style wires on the back to keep the design clean. It took some practice for me to get used to this type of soldering. Attaching the battery pack and power switch is not shown.


    Assemble All components :

    This is open ended, Experiment !. Prototype your design on a larger Arduino and breadboard. Tweak the driver code to your preferences. Make a more permanent device using your favorite prototyping technique ( Or design and order a custom PCB ! Please tell me if you do, I'd probably buy a couple! ).







    Component 3 : Code

    I've put some files up on Sourceforge

    Arduino sketch

    ( and here, another example adapted for the AtTiny13a)


    20070909

    Fractal neurofeedback

    There's an article on the Mind Hacks blog that overlaps heavily with the kind of stuff we talk about here. Their output looks Sheep-ish; since my realtime Electric Sheep renderer is working now, maybe I'll build an OpenEEG box and bang out an open source alternative.


    20070715

    Whorld : a free, open-source visualizer for sacred geometry

    From the homepage:

    "Whorld is a free, open-source visualizer for sacred geometry. It uses math to create a seamless animation of mesmerizing psychedelic images. You can VJ with it, make unique digital artwork with it, or sit back and watch it like a screensaver."


    20070627

    Idea: immersive video with one projector

    This is an idea I had while lying in bed listening to Radiohead and hallucinating. (I was perfectly sober, I swear. The Bends is just that damn good.)

    Build a frame structure (out of PVC or similar) with the approximate width/depth of a bed, and height of a few feet -- enough that you could comfortably lie on a mattress inside and not feel claustrophobic. Cover every side with white sheets, drawn taut. Mount a widescreen projector directly above the middle of this structure, pointing down. Then hang two mirrors such that the left third of the image is reflected 90 degrees to the left and the right third is reflected 90 degrees to the right (from the projector's orientation), with the middle third projecting directly onto the top of the frame. Then use more mirrors to get the left and right images onto the corresponding sides of the frame. (You'd probably also need some lenses to make everything focus at the same time; this is the only part I'm really iffy on. Fresnel lenses would probably be a good choice. Anyone who knows optics and has any idea how to set this up, please let me know.)

    Anyway, the beauty of this setup is that it allows one to control nearly the whole visual field with a single projector and a single video output, thus minimizing complexity and expense. It's not hard to set up OpenGL to render three separate images to three sections of the screen; they could be different viewpoints in the same 3D scene, although as usual I'm more interested in the more abstract uses of this. In particular, you get control over both central and peripheral vision, which has psychovisual importance.

    I'm really tempted to build this when I get back to Tech, but there's a high probability that someone else's expensive DLP projector will suffer an untimely demise at the hands of improvised mounting equipment.

    Edit: I thought of an even simpler setup that does away with the mirrors and lenses. Make the enclosure a half-cylinder, and project a single widescreen image onto it (orienting left-right with head-feet), correcting for cylindrical distortion in software. The major obstacle here is making a uniformly cylindrical projection surface, but that shouldn't be too hard.


    20070517

    Botborg: more video feedback art

    'Botborg is a practical demonstration of the theories of Dr Arkady Botborger (1923-81), founder of the 'occult' science of Photosonicneurokineasthography - translated as "writing the movement of nerves through use of sound and light". Botborg claim that sound, light, three-dimensional space and electrical energy are in fact one and the same phenomena, and that the capacity of machines to alter our neural impulses will bring about the next stage in human evolution.'

    I like the concept, but it's kinda ugly. In a pure visual-aesthetics sense, I think we could do better. On the flip side, it's also nicely disturbing (it makes some nice growling noises).

    On a related note, do any of you know anything about applying to art schools in new-media art? I have some idea of which schools I'd apply to, but no idea how to convince them to take me seriously (or indeed how to convince myself to take me seriously).


    20070503

    More on VR for consciousness hacking

    I was talking to Biff today about uses for various senses in the VR consciousness hacking idea. It occurred that smell is very low-bandwidth, but strongly tied to memory, and thus might be useful for maintaining state across multiple sessions.

    Also, apparently Terence McKenna was also interested in using VR for similar purposes. I'm not sure if that makes the idea more or less credible.

    In other news, the laser glove is about 80% done; all I need to do is wire it up. I need to talk to some sort of EE person about how to do this without exploding the lasers from overcurrent.


    20070422

    Idea : fractally compressed AR

    This is an augmented reality idea I had while walking around looking at trees after Drop Day. Basically, one would wear a VR headset that displays imagery from the outside world, except that occurrences of similar visual objects get replaced with the exact same object, or the same object perturbed in some synthetic way.

    So, for example, the leaves of a tree would get replaced with fractals that are generated to look like leaves. As another example, areas of the same "texture" could be identified (basically, areas with little low-frequency spatial component, possibly after a heuristically determined perspective correction). Then a random small exemplar patch is selected and used to fill the entire area with Wei & Levoy / Ashikhmin-style synthetic textures.

    The point of all of this is that you're essentially applying lossy compression (by identifying similar regions and discarding the differences between them), then decompressing and feeding the information into the brain (and thus mind). Working on the assumption that consciousness essentially involves a form of lossy compression which selects salient features and attenuates others, you can determine the degree and nature of this compression by determining when a similar, externally applied compression becomes noticeable or incapacitating.

    My guess is that there will be a wide range of compression levels where reality is still manageable and comprehensible but develops a highly surreal character. Of course to experiment meaningfully you'd need a good enough AR setup that the hardware itself doesn't introduce too much distortion, although you could also control for this by having people use the system without software distortions.


    The McCollough effect: a high-level optical illusion

    See here for a demonstration, if you're not familiar. It seems like an afterimage effect at first, but can last for weeks, apparently affects direction-dependent edge detection in V1, and correlates with extroversion. Weird, eh?


    BLIT : a short story

    BLIT: a short story by David Langford

    Terrifyingly relevant to what Mike and I are working on.

    "2-6. This first example of the Berryman Logical Image Technique (hence the usual acronym BLIT) evolved from AI work at the Cambridge IV supercomputer facility, now discontinued. V.Berryman and C.M.Turner [3] hypothesized that pattern-recognition programs of sufficient complexity might be vulnerable to "Gödelian shock input" in the form of data incompatible with internal representation. Berryman went further and suggested that the existence of such a potential input was a logical necessity ...

    ... independently discovered by at least two late amateurs of computer graphics. The "Fractal Star" is generated by a relatively simple iterative procedure which determines whether any point in two-dimensional space (the complex field) does or does not belong to its domain. This algorithm is now classified."

    What do you think the odds are that we make something like this?


    idea : VR for consciousness hacking

    Ooh, interpolating tessellations is an awesome idea. You'd basically have to interpolate under a constraint, that some parts of the spline line up with other parts. But since this constraint is satisfied at all reference points, I think it would be doable.

    I've been thinking lately about virtual reality as a tool for consciousness hacking. VR as played out in the mid-90's was mostly about representing realistic scenes poorly and at great expense. But I think we can do a lot with abstract (possibly fractal-based) virtual spaces, and the hardware is much better and cheaper now. The kit I'm imagining consists of:

    • 3D stereoscopic head-mounted display with 6DOF motion tracker (like this)
    • High-quality circumaural headphones (like these)
    • Homemade EEG (like this)
    • Possibly other biofeedback devices (ECG, skin resistance, etc.)
    • Intuitive controllers (e.g. data glove like this, camera + glowing disks for whole-body motion-tracking, etc.)
    • A nice beefy laptop with a good graphics card
    • Appropriate choice of alphabet soup and related delivery mechanism, if desired
    • A locking aluminum equipment case with neat foam cutouts for all of the above
    With the right software this can obviously do a great many things. For example, I've found that after experimenting with a graphics effect for a while, I develop the ability to hallucinate the same effect. With more control over the training period it might be possible to train more complicated effects, determine how much computation versus playback of prerecorded samples is going on at "runtime", and determine on what level(s) of abstraction the hallucinated data manifests. Of course, for actual scientific results we'd need to duplicate the experiments over many people, but personally I'm more interested in hacks that give me greater access to and understanding of my own mind.