[Russell Walsmith, regarding Triternions and the rendereing thereof] Paul Bourke's rendering seems to use some density cloud function (probably the number of iterations accumulated while stepping along the line-of-sight for each pixel), so the object's outside is structured as well. All I can offer for the moment is a greyscale depth rendering similar to Fractint's Julibrot type (that is, the object is solid and the surrounding space is transparent). You can achieve a kind of outside density rendering by switching from outside=summ to outside=iter, but the colors will wrap around many times, which really doesn't look good. Gerald ---------------------------- Parameters below ------------------------------ T-set_in_3d {;Greyscale depth image ; reset=2004 type=formula formulafile=test.frm formulaname=Rot3d_T-set passes=g center-mag=-0.68046/-0.24858/0.9363296 params=0/0/-0.75/0.75/0/0/0/4/150/253 float=y maxiter=2000000000 outside=summ periodicity=0 colors=000zzzyzzzyzzyyyyyxyyyxzyxxxxxwxxxwyxwwwwwvwwwvxwvvvvvuvvvuwvuuuu\ utuuutvutttttstttsutsssssrsssrtsrrrrrqrrrqsrqqqqqpqqqprqpppppopppoqpoooo\ onooonponnnnnmnnnmonmmmmmlmmmlnmlllllklllkmlkkkkkjkkkjlkjjjjjijjjikjiiii\ ihiiihjihhhhhghhhgihgggggfgggfhgfffffefffegfeeeeedeeedfedddddcdddcedcccc\ cbcccbdcbbbbbabbbacbaaaaa`aaa`ba`````_```_a`_____Z___Z`_ZZZZZYZZZY_ZYYYY\ YXYYYXZYXXXXXWXXXWYXWWWWWVWWWVXWVVVVVUVVVUWVUUUUUTUUUTVUTTTTTSTTTSUTSSSS\ SRSSSRTSRRRRRQRRRQSRQQQQQPQQQPRQPPPPPOPPPOQPOOOOONOOONPONNNNNMNNNMONMMMM\ MLMMMLNMLLLLLKLLLKMLKKKKKJKKKJLKJJJJJIJJJIKJIIIIIHIIIHJIHHHHHGHHHGIHGGGG\ GFGGGFHGFFFFFEFFFEGFEEEEEDEEEDFEDDDDDCDDDCEDCCCCCBCCCBDCBBBBBABBBACBAAAA\ A9AAA9BA9999989998A98888878887987777767776876666656665765555545554654444\ 4344435433333233324322222122213211111011102100000000PPP } frm:Rot3d_T-set {;periodicity=no, outside=summ ;maxit > p5real*(p5imag+1) ;-------------------------------------------- ;p1real: Rotation about x-axis (1st rotation) ;p1imag: Rotation about y-axis (2nd rotation) ;p2real: Far clipping plane ;p2imag: Near clipping plane ;p3real: x1(0) ;p3imag: y1(0) ;p4real: z1(0) ;p4imag: Bailout ;p5real: Maxiter per slice ;p5imag: Number of slices - 1 ;-------------------------------------------- ; bailout = imag(p4), tiefnum = imag(p5) delta = (real(p2)-imag(p2))/tiefnum tmp = pi/180 rotXax = exp(flip(real(p1)*tmp)), rotYax = exp(flip(imag(p1)*tmp)) ; HPixXY = rotYax VPixZ = real(rotXax) VPixXY = flip(conj(rotYax)) NXY = VPixZ*VPixXY NZ = imag(conj(rotXax)) VPixXY = -NZ*VPixXY ; tmp = NXY*imag(p2) + HPixXY*real(pixel) + VPixXY*imag(pixel) cx = cx0 = real(tmp), cy = cy0 = imag(tmp) cz = cz0 = NZ*imag(p2) + VPixZ*imag(pixel) ;HPixZ -> 0 tmp = NXY*delta, dcx = real(tmp), dcy = imag(tmp) dcz = NZ*delta x1 = real(p3) y1 = imag(p3) z1 = real(p4) j = m = i = 0: a = sqr(x1) + 2*y1*z1 b = sqr(z1) + 2*x1*y1 c = sqr(y1) + 2*x1*z1 x1 = a + cx, y1 = b + cy, z1 = c + cz IF (bailout >= (sqr(x1)+sqr(y1)+sqr(z1))) i = i + 1 ELSE i = 0 m = m + 1 cx = cx0 = cx0 + dcx cy = cy0 = cy0 + dcy cz = cz0 = cz0 + dcz x1 = real(p3), y1 = imag(p3), z1 = real(p4) ENDIF z = m - j j = j + 1 tiefnum >= m && p5 >= i } ---------------------------- End of parameters -----------------------------