Programa em PERL para gerar o Conjunto de Mandelbrot
Esta imagem do fractal Conjunto de Mandelbrot foi gerada pelo programa em PERL (abaixo), rodado com o seguinte parâmetro: perl mandelbrot.pl 300 > imagem.pbm O parâmetro 300 significa que a imagem foi gerada com 300x300 pixels. O arquivo gerado "imagem.pbm" foi convertido para gif para ser adicionado nesta página. Esta versão simples e com pouca otimização roda 16% mais rápido do que a implementação anterior em PERL do site de comparação de velocidade de linguagens (shootout.alioth.debian.org - Computer Language Benchmarks). Veja mais abaixo a versão otimizada (mais complexa) e que usa threads para ficar mais rápido ainda.
![]()
# The Computer Language Shootout # implemented by Rodrigo de Almeida Siqueira use strict; my $ITER = 50; my $LIMITSQR = 4; my $xmin = -1.5; my $xmax = 0.5; my $ymin = -1; my $ymax = 1; my ($w, $h, $Cr, $Ci, $Zr, $Zi, $Tr, $Ti); $w = $h = shift || 80; print "P4\n$w $h\n"; for my $y (0..$h-1) { my @v; my $Ci = 2 * $y / $h + $ymin; for my $x (0..$w-1) { my $Zr = $Zi = $Tr = $Ti = 0; my $Cr = 2 * $x / $h + $xmin; my $in_m = 1; for (1..$ITER) { $Zi = 2 * $Zr * $Zi + $Ci; $Zr = $Tr - $Ti + $Cr; $Ti = $Zi * $Zi; $Tr = $Zr * $Zr; if (($Tr + $Ti) > $LIMITSQR) { $in_m = 0; last; } } push @v, $in_m; } print pack 'B*', pack 'C*', @v; } ### END ###Versão otimizada (30% mais rápido do que o algoritmo original) e também paralelizada para funcionar com múltiplos processadores (cores):# The Computer Language Benchmarks Game # http://shootout.alioth.debian.org/ # # contributed by Rodrigo de Almeida Siqueira # parallelised by Philip Boulain use strict; use threads; my $threads = 6; # Workers; ideally slightly overshoots number of processors my $MAXITER = 50; my $LIMIT = 4; my $xmin = -1.5; my $ymin = -1; my ($w, $h); $w = $h = shift || 200; my $invN = 2/$w; print "P4\n$w $h\n"; # PBM image header sub lines { my $y1 = shift; my $y2 = shift; my @v; my $checknext=1; for my $y ($y1..$y2) { my $Ci = $y * $invN + $ymin; X: for my $x (0..$w-1) { my ($Zr, $Zi, $Tr, $Ti); my $Cr = $x * $invN + $xmin; if ($checknext) { # Iterate with checking (likely outer pixel) for (1..$MAXITER) { $Zi = 2 * $Zr * $Zi + $Ci; $Zr = $Tr - $Ti + $Cr; $Ti = $Zi * $Zi; $Tr = $Zr * $Zr; if ($Tr + $Ti > $LIMIT) { push @v, 0; # White pixel next X; } } push @v, 1; # Black pixel $checknext = 0; # Is inner pixel. } else { # Iterate without checking (likely inner pixel) for (1..$MAXITER) { $Zi = 2 * $Zr * $Zi + $Ci; $Zr = $Tr - $Ti + $Cr; $Ti = $Zi * $Zi; $Tr = $Zr * $Zr; } if ($Tr+$Ti <= 4) { push @v, 1; } else { # $Tr+$Ti is a large number or overflow ('nan' or 'inf') push @v, 0; $checknext = 1; } } } } return pack 'B*', pack 'C*', @v; } use constant MAXPIXEL => 524288; # Maximum pixel buffer per thread my $each = int($h / $threads); $each = int(MAXPIXEL / $w) if ($each * $w) > MAXPIXEL; $each = 1 if $each < 1; $|=1; my $y = 0; my @workers; # Work as long as we have lines to spawn for or threads to collect from while(@workers or ($y < $h)) { # Create workers up to requirement while((@workers < $threads) and ($y < $h)) { my $y2 = $y + $each; $y2 = $h if $y2 > $h; push(@workers, threads->create('lines', $y, $y2-1)); $y = $y2; } # Block for result from the leading thread (to keep output in order) my $next = shift @workers; print $next->join(); }Versão em linguagem LUA: http://shootout.alioth.debian.org/u32/benchmark.php?test=mandelbrot&lang=lua Versão em PERL no servidor de language benchmark performance: http://shootout.alioth.debian.org/u32/program.php?test=mandelbrot&lang=perl&id=3 Versão em FORTRAN (muito rápida): http://shootout.alioth.debian.org/u32/program.php?test=mandelbrot&lang=ifc&id=6 Versão em Java (mandelbrot.java): http://code.google.com/p/core-java-performance-examples/source/browse/trunk/src/test/java/com/google/code/java/core/shootout/Post by Grupo Fractarte (2012-01-16 19:24)
Da Ordem ao Caos
Imagem criada com o Structure Synth (http://structuresynth.sourceforge.net/) e renderizada com o SunFlow - Render System - Open Source Render Engine (http://sunflow.sourceforge.net/). Composição fractal de cubos - padrão ordenado seguido por padrão caótico criado pela introdução de uma variável aleatória. Autor: Rodrigo Siqueira - Grupo Fractarte Veja outras imagens deste tipo na minha galeria: Structure Synth Fractals.
![]()
Post by Grupo Fractarte (2011-11-19 18:19)
Fractal Explosion video
O video "Fractal Explosion" já foi visto cerca de 25.000 vezes no youtube: Fractal e video criado por Rodrigo Siqueira (Grupo Fractarte) Música "Ventos sobre neo-Tóquio", de Geinoh Yamashirogumi. Software utilizado: UltraFractal
![]()
Post by Grupo Fractarte (2011-09-20 02:29)
Fractal Artists
Alguns artistas que usam fractais: Damien Jones: http://www.cogito.org/Interviews/InterviewsDetail.aspx?ContentID=16808Post by Grupo Fractarte (2011-09-07 15:18)
Site do Grupo Fractarte
![]()
Conheça os Fractais criados pelo Grupo Fractarte: http://www.fractarte.com.br/ O Grupo Fractarte foi composto em 1994 pelos pesquisadores Rodrigo de Almeida Siqueira, Humberto Rossetti Baptista e Alexandre Dupont para divulgar a arte e ciência dos Fractais. O logotipo do Grupo Fractarte (imagem acima) é formado por 3 imagens, que representam seus três integrantes. As imagens são:
![]()
- Triângulo de Sierpinsky
- Esponja de Menger-Sierpinski
- Floco de Neve de Koch
Post by Grupo Fractarte (2011-08-26 23:04)
Pesquisadores da USP lançam exposição de arte Fractal
"Nuvens não são esferas, montanhas não são cones, continentes não são círculos, um latido não é contínuo nem o raio viaja em linha reta." - Benoit Mandelbrot A Computação Gráfica já tornou-se parte integrante da nossa realidade cotidiana. São as vinhetas e comerciais de TV, os efeitos especiais do cinema e mesmo boa parte da produção gráfica de jornais, livros e revistas. Hoje em dia, entretanto, a Computação Gráfica já está superando a simples imitação da realidade. Ela está abrindo novos horizontes de conhecimento, próprios do novo meio. Uma das mais importantes linhas de pesquisa relacionada com a Computação Gráfica são os Fractais. Os Fractais são objetos matemáticos que representam fenômenos da natureza que as geometrias tradicionais não podem explicar. Através de equações fractais podemos representar matematicamente a forma de uma nuvem, de uma montanha ou de um som, a partir de relações de auto-semelhança dos objetos, ou seja, de “cópias” (aproximadas ou não) que eles têm de si mesmo, em seu interior. As aplicações dos Fractais se espalham por atividades tão díspares como a Física, Medicina, Biologia, Arquitetura ou até mesmo prospecção de petróleo. Entretanto, sua utilização artística tem tido um destaque bastante especial. O uso na música está abrindo novas frentes para a composição contemporânea e, no cinema, os fractais fazem parte do processo que possibilitou que os dinossauros fossem ressucitados por Steven Spielberg e George Lucas, no recente Parque dos Dinossauros. No Brasil, estudos de vanguarda na área vêm sendo realizados. De 10 a 25 de maio de 1994 poderá ser vista a exposição Fractais — Janelas para o Infinito, elaborada Humberto Rossetti Baptista, Rodrigo de Almeida Siqueira e Alexandre Dupont, pesquisadores do Instituto de Matemática e Estatística da Universidade de São Paulo (IME/USP). Durante 15 dias, no Centro de Cultura de Diadema (Rua Graciosa, 300 - ao lado da praça da Moça), os autores vão mostrar mais de noventa imagens de fractais gerados por computação gráfica. Só que não vão ficar apenas na mostra. Além das obras, textos explicativos mostrarão ao público leigo como elas foram geradas, de forma acessível e descomplicada, mostrando também as ligações com o mundo real, através de exemplos práticos, aplicações e analogias. As obras são impressas através de um sistema de impressão colorida por sublimação de tinta (dye sublimation) oferecido pela Tektronix, tecnologia recente que permite impressões com cores reais e tons contínuos fotográficos em cada reprodução. A partir da segunda quinzena de junho de 1994, a exposição torna-se itinerante, viajando pelos diferentes campi da USP no interior de São Paulo, chegando à capital até o final do ano. Informações gerais Fractais — Janelas para o Infinito Exposição de Arte Fractal. Autores: Humberto Rossetti Baptista Rodrigo de Almeida Siqueira Alexandre Dupont Local: Centro de Cultura de Diadema Rua Graciosa, 300 (ao lado da Praça da Moça — Diadema) Data: de 10 a 25 de maio de 1994 Horário: das 9 às 20 horas Vernissage: Dia 10 de maio de 1994, seguida de palestra multimídia Promoção: Divisão de Cultura da Prefeitura de Diadema Os Autores · Alexandre Dupont Estudante de Engenharia Elétrica na Escola de Engenharia Mauá Estudante de Matemática no IME/USP Pesquisador do Núcleo de Pesquisa sobre Novas Tecnologias da Comunicação Aplicadas à Educação - Escola do Futuro — USP · Humberto Rossetti Baptista Bacharel em Ciência da Computação no IME/USP Mestrando no IME/USP, com pesquisa sobre Fractais. Diretor do PC-Labs da PC Magazine no Brasil · Rodrigo de Almeida Siqueira Estudante de Engenharia Elétrica na POLI-USP Aluno de Iniciação Científica no IME/USP, em Criptografia e Fractais (texto do lançamento da exposição de fractais do Grupo Fractarte - release de imprensa) Site do Grupo Fractarte: www.fractarte.com.br
![]()
Post by Grupo Fractarte (1994-06-01 08:00)