GithubHelp home page GithubHelp logo

cemcen / packingalgorithms Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 15.11 MB

Geometric Packing Algorithms

License: MIT License

Scala 52.88% HTML 0.23% CSS 2.60% Vue 38.78% JavaScript 5.50%
geometric-algorithms geometry packing-algorithm experimental computer-science geometry-library scala-framework

packingalgorithms's Introduction

Geometric Packing for Convex Polygons

Table of Contents

Author

Joaquín Torres - B.Sc., M.Sc., Universidad de Chile.

Introduction

A geometric packing is an non polynomial problem (NP problem) that tries to pack different types of geometric figures into a finite space. We will focus on a convex polygon geometric packing.

As an example the next image shows the result of a geometric packing with three different kinds of polygons.

Geometric Packing

This repository provides a simple app that allows you to generate a variety of packing meshes. The app has the following features:

  • Geometric packing mesh generation.
    • Pack polygons with one container or multiple layers of containers (containers of the same width)
    • Two different approaches for the geometric packing algorithm.
    • Adjustable polygon variability
  • Assignable properties for polygons on the mesh.
  • Download mesh file on txt and json format.
  • Upload mesh file.
  • Download image of mesh generated.
  • Mesh refinement.
  • Plugin for boundary conditions
    • Assign properties to vertices and segments on the boundary of the container.

App Screenshot

Screenshots

Example 1

Example 2

Example 3

Example 4

Demo

Try using the app on this link

Documentation

Installation

Requirements

  • Java 1.8
  • Play Library
  • SBT (Scala)
  • Node (npm)

Development

For development you first need to clone the repository and install all the node libraries.

git clone https://github.com/juakotorres/PackingAlgorithms.git
cd front/
npm install

After installing the nodes libraries needed you can start the application using:

sbt run

Production

First enter the Play console:

sbt

Then for production we need to compile the project into JAR files using:

sbt dist

This produces a ZIP file containing all JAR files needed to run the application in the targer/universal folder. To run the application, unzip the file on the target server, and then run the script in the bin directory.

cd target/universal
unzip packvex-1.1.zip
cd packvex-1.1/
bin/packvex

License

MIT

packingalgorithms's People

Contributors

juakotorres avatar

Stargazers

 avatar  avatar

Watchers

 avatar

packingalgorithms's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.