Monday, January 14, 2008

Technical: Output Java3D as Image

We initially thought that Java3D can only be displayed on a browser thru a Java Applet. This worries us as mobile browsers DON'T support it. After a long long long period of research, we finally found a way to output the Java3D result as an image file. 

We can save a BufferImage object using write method of the ImageIO class. Firstly, we import the necessary class,
import javax.imageio.ImageIO;

The write method is like this:

public static boolean write(RenderedImage im, 
String formatName,
File output)
  throws IOException

As you can see, im is the RenderedImage to be written, formatName is the String which tells us the format (i.e png or jpg) and output is the file object to be written to. An example usage of the method for PNG file format shown below:

ImageIO.write(captchaImage, "png", file);



The image below shows the resultant jpg image. Now will pass this portion of code to Alan, for him to try on his Captcha 3D text and also try to produce this image by invoking a Java Servlet. 

Sunday, January 13, 2008

Meeting: 12 Jan 2008 (Group)




Agenda: System Design and Implementation

The following were discussed:

  • System Implementation
    - Discuss on the system process flow.

    Below diagram show how the users are validated through our captcha system

  • Captcha Design
    - Showing some sample of simple Captcha text designed in JAVA3D by Lexis and Alan.



    - Discuss on the communication between Catptcha and clients HTML form.
    Captcha system required to be designed with application independence features. Customers application such as registration form, login form, email and etc will just needed to call the Captcha function in order to retrieve a Captcha challenge in image form.

    - Java image encoder prototype is developed by Lexis and Alan.
    The Captcha designed in Java3D will be able to output as JPEG format image. Hence we can display the captcha image in both computer web browsers and MIDLET application. We can eliminate the use of M3D technology and only 1 piece of code needed to be maintainted.


Attendence:
- SEAH CHOON YEE, SEBASTIAN

- CHEE SUEN SIANG, ALAN

- CHIA U-MENG, ADRIAN

- OW WAI LEONG, LEXIS

Saturday, January 12, 2008

Updates: Versioning Control

Version Control software is installed and configure in the server. This is used for tracking our codes and documents.

Friday, January 11, 2008

Updates: New Website design

Welcome to the re-designed website of Epic4Security Inc.

Following the MSN meeting on 05 Jan 2008, Lexis and I set to work on getting the new website up.


We have chosen black, dark blue, gold, yellow, white to be the colour scheme, emphasizing more towards the marketing/business, like to be seen as innovators of the market/reflects on our brand identity and make the sale.





The website can be found at https://www.epic4security.no-ip.com/

Technical: 3D Transformation

Today I will talk about 3D Transformation and how to create in Java3D.

A 3D transformation is basically moving a 3D point from one location to another. Examples of transformation are Rotations, Scales, Translations, and Reflections. Before we begin, we need to import the following:
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;

The scene graph group node that contains a Transform3D object is an instance of the TransformGroup.

The transformation performed in the example below simply rotates the cube a specified number of degrees about the x and y axis. 

public void createTransformation() 

{

/** Create a 3D transformation that will 

       *   rotate the cube a specified number of degrees on the x & y axis

   */ 

Transform3D transform3D = new Transform3D();

transform3D.rotX(xRotationAngle);

transform3D.rotY(yRotationAngle);

    

/** Create the transform group node and add the transformation

 *   to the node. Add the transformation group to the scene graph.

 */

    TransformGroup transformGroup = new TransformGroup(transform3D);

    sceneGraph.addChild(transformGroup);  


/** Add a colored cube to the transform group node. */

    transformGroup.addChild(new ColorCube(cubeScale));

}
The first three lines of code create a Java3D transformation that will be used to rotate a 3D object about the x-axis and the y-axis. The method used to perform the rotation, rotX() / rotY() accepts a single double precision floating point number that specifies the angle in radians. Adding on, a rotZ() will handle the z-axis.
The next two lines creates a transform group node with the specified 3D transformation. Once this group node has been properly initialized, it is added to the scene graph.

The last line of code simply adds the colored cube to the transform group node. The transform group node now has two children: the 3D transformation object and a colored cube.

And we have our HelloJava3Db. The diagram below shows the resultant output.

Updates: New Epic4Security Logo

To position our product and brand name more successfully, a new Epic4Security banner with slogan "the best protection for your business" was created.

Our LOGO
It's a symbol of a Lock, dictating security. Within the lock, there is the letter "E". It means data is Encrypted. The golden colour give people the feeling of a "impenetrable" system.
 


Our Banner (Navy Blue version)



White version (used for minutes/letter head)


All created using Adobe Photoshop CS3.

Updates: Captcha Design v2.0

Modifying and Improvement to our Captcha Design. And Yes, the striking red background is removed. Now we are almost close to achieve the effect as described in the proposal.