## all aboard the impure train!

### lab :: the widest ascii/ansi colly

the newest impure artpack #67 has the incarnation of a conversion we had on irc. historically amiga collys are all vertical and lack color. since impure is already viewed as a "modern" crew for releasing in color and files wider than 80 columns... we decided why not make a modern colly?! and what's the perfect subject for a really really wide ansi? a train covered in graffiti of course!

## demosplash 2016

### random :: pittsburgh's demoscene event

since joining the textmode art scene, i've made lots of new friends. blocktronics and impure have both been more art collectives than a release groups. seeing the art other members are working on is very inspiring and, for the most part, the criticism is constructive. over time i've become friends with misfit and filth, all members of blocktronics who live in pretty close proximity to each other. this year we decided to meet up at pittsburgh's local demoscene event demosplash, and had a blast!

## PQ torus knot

### lab :: papervision3D math art

here we go again, another papervision3D demo featuring math permeated lines. this time im working with a classic piece of code known as the PQ torus. the vague idea is that you have 2 numbers (P + Q) that are used in the algorithm to define the knot. in general, given P + Q mutually prime, the line wraps meridionally around the torus P times and wraps the longitudinally around it Q times. i was having some trouble grasping exactly how this was going to be achieved, until i read this article on blackpawn’s website. he really breaks down the algo to a very simplistic level...

## tracing 3D objects with papervision3D

### lab :: drawing the logo

a question popped up on the papervision3D mailing list the other day about using the lines3D class to trace a 3D object. i found the idea fascinating, so i whipped up this little demo to demonstrate how simple it actually was. i started out by creating a simple cylinder with a wide base and small top, and setting its visibility to false. then creating my lines3D object. finally in the render loop i create a new line3D that connects each vertice. by checking to see in a counter variable is less than the total object vertice count ((box.geometry.vertices.length)), and adding a new line3D if the counter is less than that, or deleting all the lines and starting over...

## the lorenz attractor

### lab :: with papervision3D

we were discussing recursive algorithms and chaos theory at work yesterday. when one of the chemistry professors brought up the lorenz attractor. he was trying to draw one on the white board for about 10 minutes until i decided it would be easier to draw in flash, lol!

after a quick conversation w/ andy zupko about the new Line3D object, and my new CanvasView3D component for papervision, i made a sweet lorenz attractor!

the algorithm is super simple:

```x1 = x0 + h * a * (y0 - x0);
y1 = y0 + h * (x0 * (b - z0) - y0);
z1 = z0 + h * (x0 * y0 - c * z0); ```

## papervision3D - face level interaction

### lab :: interactive 3D objects

the new pv3d 2.0 release features an entirely new way of dispatching and handling events. earlier versions of the engine utilized two different flavors of materials, regular and interactive. with this new release, you just have materials with a boolean interactive property.

with this simple demo, im trying to learn more about the new interactive scene events. first, you create a 3D scene, and set it's interactive flag to true:

`view = new Viewport3D(width, height, scaleToStage, interactive);`

then create a material and set it's interactive property to true: