diff --git a/.gitignore b/.gitignore index 255f578..2e46775 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .DS_Store +.log.txt applet application.linux32 application.linux64 diff --git a/AIR_DRAWER.pde b/AIR_DRAWER.pde index dc9df90..10ceaee 100644 --- a/AIR_DRAWER.pde +++ b/AIR_DRAWER.pde @@ -1,9 +1,14 @@ -// AIR-DRAWER version 1.2.0 build 15 -// Population version 1.2.0 build 11 -// DNA version 1.2.0 build 11 +// AIR-DRAWER version 1.3.0 build 19 +// Population version 1.3.0 build 15 +// DNA version 1.3.0 build 12 + +import org.hyperic.sigar.Sigar; +import org.hyperic.sigar.Mem; +import org.hyperic.sigar.SigarException; //data of times and fitness Table table = new Table(); +PrintWriter log; Boolean ifContinue = true; int endCount = 0; @@ -16,21 +21,23 @@ Population population; int gen; -String preset = "UltraFast"; +String preset = "Medium"; String projectName = year() + "00".substring(str(month()).length()) + str(month()) + "00".substring(str(day()).length()) + str(day()) + "00".substring(str(hour()).length()) + str(hour()) + "00".substring(str(minute()).length()) + str(minute()) + "_AIR"; +ArrayList print = new ArrayList(); + void setup() { - size(512, 288); + size(1080, 608); //pixelDensity(displayDensity()); noStroke(); smooth(); - f = createFont("Courier", 20, true); + f = createFont("font/Maplestory Light.ttf", 50, true); - surface.setTitle("AIR-DRAWER v1.2.0"); + surface.setTitle("AIR-DRAWER v1.3.0"); table.addColumn("Gen"); table.addColumn("Time"); @@ -40,45 +47,66 @@ void setup() { int popmax = 100; dnaSize = 8; + background(127); + // Create a populationation with a target , mutation rate, and populationation max PImage target; - target = loadImage("world256.png"); + target = loadImage("sagiri256.png"); population = new Population(popmax, dnaSize, target); + + PImage mileuIcon; + mileuIcon = loadImage("mileu.png"); + + image(target, 32, 32); + + fill(192); + rect(256 + 64, 32, 256, 256); + image(mileuIcon, 256 + 64, 32, 256, 256); + + log = createWriter(".log.txt"); + log.println("Log created date : "+year()+"/"+month()+"/"+day()+" "+hour()+":"+minute()+":"+second()+"."+millis()); + log.println(projectName); + + printM("AIR-DRAWER version 1.3.0 build 19"); } void draw() { - - if (frameCount == 1) image(population.getTarget(), 0, 0); + if (millis() > 60000 && millis() < 100000) displaySystemInfo(256 + 64, 32, 256, 256); if (ifContinue) { + printM("preset : " + preset); + if (addPopCount > 0) { - if (addPopCount > 300) preset = "UltraFast"; + if (addPopCount > 350) preset = "UltraFast"; else if (addPopCount > 100) preset = "Medium"; else if (addPopCount > 1) preset = "Color"; - else preset = "UltraFast"; + else preset = "Medium"; population.mutate(population.getPopLength() - 50); addPopCount -= 1; } else { + population.mutate(); - if (preset.equals("UltraFast") & population.getSuccess() < 5) { + if (preset.equals("Medium") & population.getSuccess() < 5 & population.popLength < 3000) { population.addPop(50); - addPopCount = 600; + addPopCount = 400; } } gen++; - image(population.getCanvas(), population.getTarget().width, 0); + image(population.getCanvas(), 32, population.getTarget().height + 64); TableRow newRow = table.addRow(); newRow.setInt("Gen", gen); newRow.setInt("Time", millis()); newRow.setInt("Fitness", population.getFitness()); newRow.setInt("Success", population.getSuccess()); - displayInfo(); + displayDiff(256 + 64, 256 + 64, 256, 256); + displayInfo(256 * 2 + 32 * 3, 32, 440, 32); + displayPrintM(256 * 2 + 32 * 3, 32 *3, 440, 480); } else { exit(); noLoop(); @@ -87,21 +115,100 @@ void draw() { saveFrame("projects/" + projectName + "/frames/#####.jpg"); } -void displayInfo() { +void displayDiff(int x1, int y1, int x2, int y2) { + PImage[] diffImage = population.diffImage(); + image(diffImage[0], x1, y1, 128, 128); + image(diffImage[1], x1 + 128, y1, 128, 128); + image(diffImage[2], x1, y1 + 128, 128, 128); + + textAlign(LEFT, CENTER); + textFont(f, 19); + fill(192); + rect(x1 + 128, y1 + 128, 128, 128); + fill(255, 0, 0); + text("R : " + String.format("%.2E", population.getFitrgb()[0] / 1.0), x1 + 128 + 6, y1 + 128 + 32); + fill(0, 255, 0); + text("G : " + String.format("%.2E", population.getFitrgb()[1] / 1.0), x1 + 128 + 6, y1 + 128 + 64); + fill(0, 0, 255); + text("B : " + String.format("%.2E", population.getFitrgb()[2] / 1.0), x1 + 128 + 6, y1 + 128 + 96); +} + +void displaySystemInfo(int x1, int y1, int x2, int y2) { + + fill(192); + rect(x1, y1, x2, y2); + + textAlign(CENTER, CENTER); + textFont(f, 30); + fill(0); + + text("AIR-DRAWER", x1 + x2 / 2, y1 + 30); + + textFont(f, 20); + fill(0); + + text("v1.3.0", x1 + x2 / 2, y1 + 60); + + String cpu = ""; + + try { + Sigar sigar = new Sigar(); + org.hyperic.sigar.CpuInfo[] cpuInfoList = sigar.getCpuInfoList(); + for (org.hyperic.sigar.CpuInfo info : cpuInfoList) + cpu = info.getModel(); + } + catch (Exception e) { + } + + textAlign(LEFT, CENTER); + textFont(f, 20); + fill(0); + + text("System", x1 + 10, y1 + 125); + + textFont(f, 13); + text("CPU : " + cpu, x1 + 5, y1 + 155); + text("RAM : " + Runtime.getRuntime().maxMemory()/pow(2, 30) + " GB", x1 + 5, y1 + 180); + text("OS : " + System.getProperty("os.name") + " " + System.getProperty("os.version") + " " + System.getProperty("os.arch"), x1 + 5, y1 + 205); + text("JAVA : " + System.getProperty("java.vendor") + " " + System.getProperty("java.version"), x1 + 5, y1 + 230); +} + +void displayPrintM(int x1, int y1, int x2, int y2) { + textAlign(LEFT, CENTER); + textFont(f, 20); + fill(0); + rect(x1, y1, x2, y2); + fill(255); + while (print.size() > 18) + print.remove(0); + + for (int i = 0; i < print.size(); i++) { + text(print.get(print.size() - i - 1), x1 + 10, y1 + 480 - 20 - 25 * i); + } +} + +void printM(String message) { + System.out.println(message); + log.println(message); + log.flush(); + print.add(message); +} + +void displayInfo(int x1, int y1, int x2, int y2) { //display on console - println("success " + population.getSuccess() + " DNA SIZE " + population.getPopLength()); + printM("success " + population.getSuccess() + " DNA SIZE " + population.getPopLength()); int[] fitrgb = population.getFitrgb(); - println(fitrgb[0] + " : " + fitrgb[1] + " : " + fitrgb[2]); + printM(fitrgb[0] + " : " + fitrgb[1] + " : " + fitrgb[2]); //display generation count - textSize(20); textAlign(LEFT, CENTER); + textFont(f, 19); fill(0); - rect(0, population.getTarget().height, population.getTarget().width * 2, 32); + rect(x1, y1, x2, y2); fill(0, 255, 255); - text("Gen : " + gen, 10, population.getTarget().height + 14); + String hour = "00"; String minute = "00"; String second = "00"; @@ -110,77 +217,76 @@ void displayInfo() { minute = "00".substring(str((millis()/60000)%60).length()) + str((millis()/60000)%60); second = "00".substring(str((millis()/1000)%60).length()) + str((millis()/1000)%60); - text("Time : " + hour + ":" + minute + ":" + second, 150, population.getTarget().height + 14); - text("Fitness : " + population.getFitness() / 3, 330, population.getTarget().height + 14); + text("세대 : " + gen + " 시간 : " + hour + ":" + minute + ":" + second + " 정밀도 : " + String.format("%.3E", population.getFitness() / 3.0), x1 + 5, y1 + 13); } void keyPressed() { if ( key == 'q' || key == 'Q' || key == 'ㅂ') { - println("starting ending sequence"); + printM("starting ending sequence"); ifContinue = false; } else if ( key == '1') { preset = "UltraFast"; - println("UltraFast"); + printM("UltraFast"); } else if ( key == '2') { preset = "SuperFast"; - println("SuperFast"); + printM("SuperFast"); } else if ( key == '3') { preset = "VeryFast"; - println("VeryFast"); + printM("VeryFast"); } else if ( key == '4') { preset = "Faster"; - println("Faster"); + printM("Faster"); } else if ( key == '5') { preset = "Fast"; - println("Fast"); + printM("Fast"); } else if ( key == '6') { preset = "Medium"; - println("Medium"); + printM("Medium"); } else if ( key == '7') { preset = "Slow"; - println("Slow"); + printM("Slow"); } else if ( key == '8') { preset = "Slower"; - println("Slower"); + printM("Slower"); } else if (key == '9' ) { preset = "VerySlow"; - println("VerySlow"); + printM("VerySlow"); } else if (key == '0' ) { preset = "Placebo"; - println("Placebo"); + printM("Placebo"); } else if ( key == '!') { preset = "UltraFast(noRGB)"; - println("UltraFast(noRGB)"); + printM("UltraFast(noRGB)"); } else if ( key == '@') { preset = "SuperFast(noRGB)"; - println("SuperFast(noRGB)"); + printM("SuperFast(noRGB)"); } else if ( key == '#') { preset = "VeryFast(noRGB)"; - println("VeryFast(noRGB)"); + printM("VeryFast(noRGB)"); } else if ( key == '$') { preset = "Faster(noRGB)"; - println("Faster(noRGB)"); + printM("Faster(noRGB)"); } else if ( key == '%') { preset = "Fast(noRGB)"; - println("Fast(noRGB)"); + printM("Fast(noRGB)"); } else if ( key == '^') { preset = "Medium(noRGB)"; - println("Medium(noRGB)"); + printM("Medium(noRGB)"); } else if ( key == '&') { preset = "Slow(noRGB)"; - println("Slow(noRGB)"); + printM("Slow(noRGB)"); } else if ( key == '*') { preset = "Slower(noRGB)"; - println("Slower(noRGB)"); + printM("Slower(noRGB)"); } else if (key == '(' ) { preset = "VerySlow(noRGB)"; - println("VerySlow(noRGB)"); + printM("VerySlow(noRGB)"); } else if (key == ')' ) { preset = "Placebo(noRGB)"; - println("Placebo(noRGB)"); + printM("Placebo(noRGB)"); } else if (key == 'c' ) { preset = "Color"; - println("Color"); + printM("Color"); } } @@ -188,6 +294,8 @@ void exit() { saveTable(table, "projects/" + projectName + "/data.csv"); + //population.removePop(); + population.savefile(); PGraphics scanvas; //Ga drawing render @@ -204,7 +312,7 @@ void exit() { population.population[i].draw(scanvas); scanvas.endDraw(); String count = "00000".substring(str(i).length()) + str(i); - println(i + "/" + population.getPopLength()); + printM(i + "/" + population.getPopLength()); scanvas.save("projects/" + projectName + "/draw/" + count + ".jpg"); } diff --git a/Component.pde b/Component.pde deleted file mode 100644 index 70aff40..0000000 --- a/Component.pde +++ /dev/null @@ -1,17 +0,0 @@ -//Component v0.1.0 build 1 - -class Component { - - Component() { - } - - int draw() { - - return 0; - } - - int remove() { - - return 0; - } -} \ No newline at end of file diff --git a/DNA.pde b/DNA.pde index 9acb5c7..756a1bd 100644 --- a/DNA.pde +++ b/DNA.pde @@ -1,16 +1,18 @@ -// AIR-DRAWER version 1.2.0 build 15 -// Population version 1.2.0 build 11 -// DNA version 1.2.0 build 11 +// AIR-DRAWER version 1.3.0 build 19 +// Population version 1.3.0 build 15 +// DNA version 1.3.0 build 12 class DNA { // The genetic sequence float[] genes;//(x1,y1), (x2,y2), r, g, b, a; int dnaSize; + int targetResolution; // Constructor (makes a random DNA) DNA(int num) { this.dnaSize = num; + targetResolution = 128; float len = 1; genes = new float[dnaSize]; @@ -138,6 +140,19 @@ class DNA { void mutate() { mutate(20, 15); } + + void extendResolution2x(){ + dnaSize *=2; + targetResolution *= 2; + + float[] genesCache = new float[dnaSize]; + for(int i = 0; i < dnaSize; i++){ + genesCache[i] = genes[i/2]; + genesCache[i+1] = genes[i/2]; + } + + + } void draw(PGraphics layer, float ratio) { layer.stroke(genes[4], genes[5], genes[6], genes[7]); @@ -147,7 +162,7 @@ class DNA { void draw(PGraphics layer) { float ratio; - ratio = layer.width / 128.0; + ratio = layer.width / float(targetResolution); draw(layer, ratio); } } \ No newline at end of file diff --git a/Population.pde b/Population.pde index 17b32fb..8881ed9 100644 --- a/Population.pde +++ b/Population.pde @@ -1,6 +1,6 @@ -// AIR-DRAWER version 1.2.0 build 15 -// Population version 1.2.0 build 11 -// DNA version 1.2.0 build 11 +// AIR-DRAWER version 1.3.0 build 19 +// Population version 1.3.0 build 15 +// DNA version 1.3.0 build 12 // A class to describe a population of virtual organisms // In this case, each organism is just an instance of a DNA object @@ -11,6 +11,7 @@ class Population { DNA[] populationBack; // Backup population int dnaSize; + private int popLength; private color backgroundColor; @@ -27,15 +28,15 @@ class Population { Population(int popLength, int dnaSize, PImage target) { - if (popLength > 10000) { - println("error : popLength is up to 10000"); - popLength = 10000; + if (popLength > 3000) { + printM("error : popLength is up to 3000"); + popLength = 3000; } this.popLength = popLength; - population = new DNA[10000]; - populationBack = new DNA[10000]; + population = new DNA[3005]; + populationBack = new DNA[3005]; this.dnaSize = dnaSize; @@ -46,8 +47,9 @@ class Population { this.target = target; - backgroundColor = selectBackgroundColor(target); + //backgroundColor = selectBackgroundColor(target); //backgroundColor = color(249, 239, 227); + backgroundColor = color(255); canvas = createGraphics(target.width, target.height); canvas.beginDraw(); @@ -55,11 +57,8 @@ class Population { canvas.endDraw(); c_canvas1 = createGraphics(target.width, target.height); - fitrgb = calFitness(); - lastFitness = fitrgb[0] + fitrgb[1] + fitrgb[2]; - lastFitrgb = fitrgb; - - fitness = lastFitness; + fitness =999999999; + lastFitness = 999999999; } void display(int start, int target) { @@ -98,6 +97,7 @@ class Population { success = 0; for (int i = start; i < popLength; i++) { + //printM("DNA : " + i ); population[i].mutate(preset); display(start, i); @@ -105,6 +105,11 @@ class Population { fitrgb = calFitness(); fitness = fitrgb[0] + fitrgb[1] + fitrgb[2]; + /* + printM("fit : " + fitness); + printM("lastfit : " + lastFitness); + */ + //if before draw is better, rollback if (fitness < lastFitness) { copyFromOrigToBack(); @@ -128,37 +133,7 @@ class Population { } int mutate() { - - success = 0; - - for (int i = 0; i < popLength; i++) { - - population[i].mutate(preset); - display(i); - - fitrgb = calFitness(); - fitness = fitrgb[0] + fitrgb[1] + fitrgb[2]; - - //if before draw is better, rollback - if (fitness < lastFitness) { - copyFromOrigToBack(); - lastFitness = fitness; - lastFitrgb = fitrgb; - - success++; - } else { - copyFromBackToOrig(); - fitness = lastFitness; - fitrgb = lastFitrgb; - } - - c_canvas1.beginDraw(); - population[i].draw(c_canvas1); - c_canvas1.endDraw(); - } - - //No errors have occurred - return 0; + return mutate(0); } int addPop() { @@ -167,8 +142,8 @@ class Population { int addPop(int n) { - if (popLength + n > 10000) { - println("error : popLength is up to 10000"); + if (popLength + n > 3000) { + printM("error : popLength is up to 3000"); return -1; } @@ -178,21 +153,47 @@ class Population { } popLength = popLength + n; - println("popLength : " + popLength); + printM("popLength : " + popLength); display(); - fitrgb = calFitness(); - lastFitness = fitrgb[0] + fitrgb[1] + fitrgb[2]; - lastFitrgb = fitrgb; - fitness = lastFitness; + fitness =999999999; + lastFitness = 999999999; //No errors have occurred return 0; } - - int removePop(){ - + + int removePop() { + display(); + int[] fitCache = calFitness(); + int fit = fitCache[0] + fitCache[1] + fitCache[2]; + printM("이전 오차 : " + fit); + int count = 0; + for (int i = 0; i < popLength; i++) { + canvas.beginDraw(); + canvas.background(backgroundColor); + for (int j = 0; j< popLength; j++) { + if (i!=j) population[i].draw(canvas); + } + canvas.endDraw(); + int[]fitc = calFitness(); + int f = fitc[0] + fitc[1] + fitc[2]; + + if (f < fit) { + count++; + fit = f; + //remove i + for (int k = i+1; k < popLength; k++) + for (int l = 0; l < dnaSize; l++) + population[k-1].genes[l] = population[k].genes[l]; + i--; + } + } + + printM(count + "개의 유전자가 삭제되었습니다."); + printM("나중 오차 : " + fit); + //No errors have occurred return 0; } @@ -230,10 +231,10 @@ class Population { } void savefile() { - println("saving canvas.."); + printM("saving canvas.."); canvas.save("projects/" + projectName + "/result.png"); - println("saving dna.."); + printM("saving dna.."); PrintWriter output = createWriter("projects/" + projectName + "/dna.air"); output.println("MILEUAIR v1.0.0"); //file version @@ -273,6 +274,56 @@ class Population { return fit; } + + PImage[] diffImage() { + + PGraphics[] diffImage = new PGraphics[3]; // 0 : Red, 1 : Green, 2 : Blue + + for (int i = 0; i < diffImage.length; i++) { + diffImage[i] = createGraphics(target.width, target.height); + diffImage[i].beginDraw(); + diffImage[i].background(backgroundColor); + diffImage[i].endDraw(); + } + + float rerr = 1, gerr = 1, berr = 1; + + for (int x = 0; x < target.width; x++) { + for (int y = 0; y < target.height; y++) { + int loc = x + y*target.width; + //int comploc = x + (y+(target.height))*target.width; + color sourcepix = target.pixels[loc]; + color comparepix = canvas.pixels[loc]; + + //find the error in color (0 to 255, 0 is no error) + rerr = max(rerr, abs(red(sourcepix)-red(comparepix))); + gerr = max(gerr, abs(green(sourcepix)-green(comparepix))); + berr = max(berr, abs(blue(sourcepix)-blue(comparepix))); + } + } + + for (int i = 0; i < diffImage.length; i++) + diffImage[i].loadPixels(); + + for (int x = 0; x < target.width; x++) { + for (int y = 0; y < target.height; y++) { + int loc = x + y*target.width; + //int comploc = x + (y+(target.height))*target.width; + color sourcepix = target.pixels[loc]; + color comparepix = canvas.pixels[loc]; + + diffImage[0].pixels[loc] = color(abs(red(sourcepix)-red(comparepix)) * 255 / rerr, 0, 0); + diffImage[1].pixels[loc] = color(0, abs(green(sourcepix)-green(comparepix)) * 255 / gerr, 0); + diffImage[2].pixels[loc] = color(0, 0, abs(blue(sourcepix)-blue(comparepix)) * 255 / berr); + } + } + + for (int i = 0; i < diffImage.length; i++) + diffImage[i].updatePixels(); + + return diffImage; + } + color selectBackgroundColor(PImage image) { int rsum = 0, gsum = 0, bsum = 0; int totalpixel = image.width * image.height; @@ -298,7 +349,7 @@ class Population { bsum = bsum / totalpixel; averageColor = color(rsum, gsum, bsum); - println(rsum + " : " + gsum + " : " + bsum); + printM(rsum + " : " + gsum + " : " + bsum); return averageColor; } diff --git a/README.md b/README.md index b59f6d7..d6bcd08 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,20 @@ -------- -# AIR-DRAWER +# AIR-DRAWER v1.3.0 Draw image with GA -- Based on : **Processing 3.3.2** https://processing.org/download/ +- Based on : **Processing 3.3.6** https://processing.org/download/ - Original Project from suakii / cs2016 : evolving_imager999 https://github.com/suakii/cs2016/tree/master/7_Evolution_Code/evolving_imager999 -------- # examples -- winxp (building) https://youtu.be/1Hlc6eYiScI -- winxp (painting) https://youtu.be/XEFYhfZpA5k +- sagiri (building) https://youtu.be/2Wg1B6BDxoA +- sagiri (painting) https://youtu.be/kTBQNQGV2c4 - -> + -> - Illya (building) https://youtu.be/uqH9RCmoTSM - Illya (painting) https://youtu.be/N2iwa-AdrX8 diff --git a/code/.sigar_shellrc b/code/.sigar_shellrc new file mode 100644 index 0000000..ed12204 --- /dev/null +++ b/code/.sigar_shellrc @@ -0,0 +1,48 @@ +#this file is loaded by the sigar shell. +#commands in this file are run just as they would be if they +#were typed in by hand in the shell prompt. + +#find weblogic nodes (-1 means last index in the array) +alias ps-wls ps State.Name.eq=java,Args.-1.eq=weblogic.Server + +#find websphere 4.x nodes +alias ps-was4 ps State.Name.eq=java,Args.*.eq=com.ibm.ejs.sm.server.ManagedServer + +#find websphere admin server +alias ps-was4adm ps State.Name.eq=java,Args.*.eq=com.ibm.ejs.sm.server.AdminServer + +#find websphere 5.x nodes +alias ps-was5 ps State.Name.eq=java,Args.*.eq=com.ibm.ws.runtime.WsServer + +#find websphere 4.x and 5.x nodes +alias ps-was ps State.Name.eq=java,Args.*.eq=com.ibm.ws.bootstrap.WSLauncher + +#find jboss (use .sw=java to match 'java' or 'javaw') +alias ps-jboss ps State.Name.sw=java,Args.*.eq=org.jboss.Main + +#find tomcat +alias ps-tomcat ps State.Name.eq=java,Args.*.eq=org.apache.catalina.startup.Bootstrap + +#find apache parent processes +#($1 is the return value of the first query in the string) +#'Pne' => 'P' flags means parent of matched process +#to filter out httpd child processes +alias ps-apache ps State.Name.re=https?d.*|[Aa]pache2?$,State.Name.Pne=$1 + +#find ant processes (ant hangs on me sometimes) +#(* matches any value in the array) +alias ps-ant ps State.Name.eq=java,Args.*.eq=org.apache.tools.ant.Main + +#HQ agents +alias ps-hqagent ps State.Name.sw=java,Args.-1.eq=org.hyperic.hq.agent.server.AgentDaemon + +#find all java procs except the shell itself +#($$ is the current process id) +alias ps-java ps State.Name.eq=java,Pid.Pid.ne=$$ +alias java ps-java + +#find all processes owned by the current user +alias ps-me ps CredName.User.eq=$user.name + +#VMware Server or GSX VMs +alias ps-vmx ps State.Name.eq=vmware-vmx,Args.1.eq=-C diff --git a/code/libsigar-amd64-freebsd-6.so b/code/libsigar-amd64-freebsd-6.so new file mode 100644 index 0000000..3e94f0d Binary files /dev/null and b/code/libsigar-amd64-freebsd-6.so differ diff --git a/code/libsigar-amd64-linux.so b/code/libsigar-amd64-linux.so new file mode 100644 index 0000000..5a2e4c2 Binary files /dev/null and b/code/libsigar-amd64-linux.so differ diff --git a/code/libsigar-amd64-solaris.so b/code/libsigar-amd64-solaris.so new file mode 100644 index 0000000..6396482 Binary files /dev/null and b/code/libsigar-amd64-solaris.so differ diff --git a/code/libsigar-ia64-hpux-11.sl b/code/libsigar-ia64-hpux-11.sl new file mode 100644 index 0000000..d92ea4a Binary files /dev/null and b/code/libsigar-ia64-hpux-11.sl differ diff --git a/code/libsigar-ia64-linux.so b/code/libsigar-ia64-linux.so new file mode 100644 index 0000000..2bd2fc8 Binary files /dev/null and b/code/libsigar-ia64-linux.so differ diff --git a/code/libsigar-pa-hpux-11.sl b/code/libsigar-pa-hpux-11.sl new file mode 100644 index 0000000..0dfd8a1 Binary files /dev/null and b/code/libsigar-pa-hpux-11.sl differ diff --git a/code/libsigar-ppc-aix-5.so b/code/libsigar-ppc-aix-5.so new file mode 100644 index 0000000..7d4b519 Binary files /dev/null and b/code/libsigar-ppc-aix-5.so differ diff --git a/code/libsigar-ppc-linux.so b/code/libsigar-ppc-linux.so new file mode 100644 index 0000000..4394b1b Binary files /dev/null and b/code/libsigar-ppc-linux.so differ diff --git a/code/libsigar-ppc64-aix-5.so b/code/libsigar-ppc64-aix-5.so new file mode 100644 index 0000000..35fd828 Binary files /dev/null and b/code/libsigar-ppc64-aix-5.so differ diff --git a/code/libsigar-ppc64-linux.so b/code/libsigar-ppc64-linux.so new file mode 100644 index 0000000..a1ba252 Binary files /dev/null and b/code/libsigar-ppc64-linux.so differ diff --git a/code/libsigar-s390x-linux.so b/code/libsigar-s390x-linux.so new file mode 100644 index 0000000..c275f4a Binary files /dev/null and b/code/libsigar-s390x-linux.so differ diff --git a/code/libsigar-sparc-solaris.so b/code/libsigar-sparc-solaris.so new file mode 100644 index 0000000..aa847d2 Binary files /dev/null and b/code/libsigar-sparc-solaris.so differ diff --git a/code/libsigar-sparc64-solaris.so b/code/libsigar-sparc64-solaris.so new file mode 100644 index 0000000..6c4fe80 Binary files /dev/null and b/code/libsigar-sparc64-solaris.so differ diff --git a/code/libsigar-universal-macosx.dylib b/code/libsigar-universal-macosx.dylib new file mode 100644 index 0000000..27ab107 Binary files /dev/null and b/code/libsigar-universal-macosx.dylib differ diff --git a/code/libsigar-universal64-macosx.dylib b/code/libsigar-universal64-macosx.dylib new file mode 100644 index 0000000..0c721fe Binary files /dev/null and b/code/libsigar-universal64-macosx.dylib differ diff --git a/code/libsigar-x86-freebsd-5.so b/code/libsigar-x86-freebsd-5.so new file mode 100644 index 0000000..8c50c61 Binary files /dev/null and b/code/libsigar-x86-freebsd-5.so differ diff --git a/code/libsigar-x86-freebsd-6.so b/code/libsigar-x86-freebsd-6.so new file mode 100644 index 0000000..f080027 Binary files /dev/null and b/code/libsigar-x86-freebsd-6.so differ diff --git a/code/libsigar-x86-linux.so b/code/libsigar-x86-linux.so new file mode 100644 index 0000000..a0b64ed Binary files /dev/null and b/code/libsigar-x86-linux.so differ diff --git a/code/libsigar-x86-solaris.so b/code/libsigar-x86-solaris.so new file mode 100644 index 0000000..c6452e5 Binary files /dev/null and b/code/libsigar-x86-solaris.so differ diff --git a/code/log4j.jar b/code/log4j.jar new file mode 100644 index 0000000..c7111d8 Binary files /dev/null and b/code/log4j.jar differ diff --git a/code/sigar-amd64-winnt.dll b/code/sigar-amd64-winnt.dll new file mode 100644 index 0000000..1ec8a03 Binary files /dev/null and b/code/sigar-amd64-winnt.dll differ diff --git a/code/sigar-x86-winnt.dll b/code/sigar-x86-winnt.dll new file mode 100644 index 0000000..6afdc01 Binary files /dev/null and b/code/sigar-x86-winnt.dll differ diff --git a/code/sigar-x86-winnt.lib b/code/sigar-x86-winnt.lib new file mode 100644 index 0000000..04924a1 Binary files /dev/null and b/code/sigar-x86-winnt.lib differ diff --git a/code/sigar.jar b/code/sigar.jar new file mode 100644 index 0000000..58c733c Binary files /dev/null and b/code/sigar.jar differ diff --git a/data/IA256.png b/data/IA256.png new file mode 100644 index 0000000..148c489 Binary files /dev/null and b/data/IA256.png differ diff --git a/data/font/Maplestory Light.ttf b/data/font/Maplestory Light.ttf new file mode 100644 index 0000000..f5b3853 Binary files /dev/null and b/data/font/Maplestory Light.ttf differ diff --git a/data/mileu.png b/data/mileu.png new file mode 100644 index 0000000..721a10c Binary files /dev/null and b/data/mileu.png differ diff --git a/data/sagiri256.png b/data/sagiri256.png new file mode 100644 index 0000000..c7fae8e Binary files /dev/null and b/data/sagiri256.png differ diff --git a/examples/frame.jpg b/examples/frame.jpg index 712e23a..74640ee 100644 Binary files a/examples/frame.jpg and b/examples/frame.jpg differ diff --git a/examples/lenna256.png b/examples/lenna256.png deleted file mode 100644 index c899c98..0000000 Binary files a/examples/lenna256.png and /dev/null differ diff --git a/examples/result(16x)_lenna256.png b/examples/result(16x)_sagiri256.png similarity index 65% rename from examples/result(16x)_lenna256.png rename to examples/result(16x)_sagiri256.png index 3553bf8..8307ccc 100644 Binary files a/examples/result(16x)_lenna256.png and b/examples/result(16x)_sagiri256.png differ diff --git a/examples/result(16x)_xp.png b/examples/result(16x)_xp.png deleted file mode 100644 index 1f279ef..0000000 Binary files a/examples/result(16x)_xp.png and /dev/null differ diff --git a/examples/result_lenna256.png b/examples/result_lenna256.png deleted file mode 100644 index f8de7f2..0000000 Binary files a/examples/result_lenna256.png and /dev/null differ diff --git a/examples/result_xp.png b/examples/result_xp.png deleted file mode 100644 index 52164d9..0000000 Binary files a/examples/result_xp.png and /dev/null differ diff --git a/examples/sagiri256.png b/examples/sagiri256.png new file mode 100644 index 0000000..c7fae8e Binary files /dev/null and b/examples/sagiri256.png differ diff --git a/examples/xp.jpg b/examples/xp.jpg deleted file mode 100644 index abd9c80..0000000 Binary files a/examples/xp.jpg and /dev/null differ