Giter VIP home page Giter VIP logo

pyopt's Introduction

pyOpt

PYthon OPTimization Framework Copyright (c) 2008-2014, pyOpt Developers

pyOpt is an object-oriented framework for formulating and solving nonlinear constrained optimization problems.

Some of the features of pyOpt:

  • Object-oriented development maintains independence between the optimization problem formulation and its solution by different optimizers
  • Allows for easy integration of gradient-based, gradient-free, and population-based optimization algorithms
  • Interfaces both open source as well as industrial optimizers
  • Ease the work required to do nested optimization and provides automated solution refinement
  • On parallel systems it enables the use of optimizers when running in a mpi parallel environment, allows for evaluation of gradients in parallel, and can distribute function evaluations for gradient-free optimizers
  • Optimization solution histories can be stored during the optimization process. A partial history can also be used to warm-restart the optimization

see QUICKGUIDE.md for further details.

Building and installing

Requirements:

  • python
  • numpy and numpy-ext
  • fortran compiler
  • swig

Build commands

Build default pyOpt

python setup.py build_ext --inplace

Build debug pyOpt with no optimization

python setup.py config_fc --debug --noopt build_ext --inplace

Get information about the available compilers

python setup.py config_fc --help-fcompiler

Licensing

Distributed using the GNU Lesser General Public License (LGPL); see the LICENSE file for details.

Please cite pyOpt and the authors of the respective optimization algorithms in any publication for which you find it useful. (This is not a legal requirement, just a polite request.)

Contact and Feedback

If you have questions, comments, problems, want to contribute to the framework development, or want to report a bug, please contact the main developers:

pyopt's People

Contributors

behemoth-s avatar dependabot[bot] avatar johndn90 avatar jonas-eschle avatar kjyv avatar madebr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyopt's Issues

Cannot import pySLSQP on mac-m1

Hi, I have a similar issue to this. I managed to install pyOpt on my system (mac-m1, 12.1, py3.8.8, gfortran) without errors and have done everything as suggested. However, I cannot import SLSQP as well.

I am now stuck with the error while "import slsqp" in the pyOpt/pySLSQP directory. The error message said that "mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')"
May I ask if this is expected? And is there a solution to use pyOpt on mac-m1? Thanks!

ImportError: cannot import name 'ALGENCAN'

Hello,

I succeded to install pyOpt on Python 3.6 and 3.7, but when I try to run the code, I get this error:

Error importing pyopt
Traceback (most recent call last):

  File "C:\Users\**\Desktop\test.py", line 48, in <module>
    from pyOpt import Optimization   ## Library for optimization

  File "C:\Users\Artem\anaconda3\envs\py36\lib\site-packages\pyOpt\__init__.py", line 10, in <module>
    from .pyALGENCAN import ALGENCAN

ImportError: cannot import name 'ALGENCAN'

Maybe someone encountered this problem?

Compilation of PyOpt in the local directory failed

I wanted to compile PyOpt in the current directory, and I followed the command:
python setup.py build_ext --inplace

However, I get the following errors:
undefined reference to 'evalhc_'
undefined reference to 'evalh_'
...
undefined reference to 'evalhlp'
collect2.exe: error: ld returned 1 exit status

Somehow it is not able to find those functions, even though they are defined in: pyOpt/pyOpt/pyALGENCAN/source/f2py/algencan.pyf

About my system, I am compiling on Windows 10 and I using Python3.7, numpy and numpy_ext are installed, swig is available and my fortran compiler is GNU Fortran 95 compiler (4.9.2)

Import Error for package ALGENCAN

Hi,

I am on Windows 10 64-bit and wanted to work with the pyOpt-package. After some trial and error I shifted to using msys2. For python, swig and fortran compiler, I'm currently using:

python 3.10.6-1
python-pip 22.2-1
python-setuptools 63.2.0-1
numpy 1.23.1
numpy-ext 0.9.8
joblib 1.0.1
gcc 11.3.0-2
swig 4.0.2-2

which are the version provided by the 'pacman' command.

From within the pyOpt-master folder I ran

python setup.py install

and the corresponding pyOpt folder showed up under site-packages for python3.10.

Example tp037.py seemingly ran fine except for solver ALGENCAN for which I received the error

Traceback (most recent call last):
  File "/c/Users/Username/Desktop/pyOpt-master/examples/tp037.py", line 98, in <module>
    from pyOpt import ALGENCAN
ImportError: cannot import name 'ALGENCAN' from 'pyOpt' (/usr/lib/python3.10/site-packages/pyOpt/__init__.py)

I'm not sure how to verify whether building the package has been successful. As in the case with the other solvers in tp037, I checked to see if something was compiled and the file

algencan.cpython-310-x86_64-msys.dll

showed up in pyALGENCAN.

I have little experience on this topic so any help or advise you could give me on this issue is greatly appreciated.

Regards!

mpi4py

May I ask why openmpi.mpi4py instead of just mpi4py?

How can I install openmpi module?

Thanks a lot!

How to obtain solution

How can I obtain a list of final variables to be used further in my program? I only want final design variables as output as a list (not the constraints)?

SNOPT error

UPDATE: In retrospect I realized this might not be an official fork and is perhaps not the correct place to ask this. Please let me know if that is the case.

Good day,

I am getting an error when trying to solve a basic test case on a Ubuntu 18.04 machine.

I followed the following steps to build pyOpt with SNOPT:

cd ~/pyOpt
cp ~/snopt7/src/*.f pyOpt/pySNOPT/source/
rm pyOpt/pySNOPT/source/snopth.f
python setup.py build

Initially, the build failed, and then following these instructions for pyoptsparse I delete the snopth.f file, after which the build seemed to work.

First I tested this problem with the SLSQP solver, which worked:

import pyOpt

def objfunc(x):
    f = -x[0] * x[1] * x[2]
    g = [0.0] * 2
    g[0] = x[0] + 2. * x[1] + 2. * x[2] - 72.0
    g[1] = -x[0] - 2. * x[1] - 2. * x[2]
    fail = 0
    return f, g, fail

opt_prob = pyOpt.Optimization('TP37 Constrained Problem', objfunc)
opt_prob.addObj('f')
opt_prob.addVar('x1', 'c', lower=0.0, upper=42.0, value=10.0)
opt_prob.addVar('x2', 'c', lower=0.0, upper=42.0, value=10.0)
opt_prob.addVar('x3', 'c', lower=0.0, upper=42.0, value=10.0)
opt_prob.addConGroup('g', 2, 'i')
print(opt_prob)
slsqp = pyOpt.SLSQP()
slsqp.setOption('IPRINT', -1)
[fstr, xstr, inform] = slsqp(opt_prob)
print(opt_prob.solution(0))

Then I tested essentially the same problem with SNOPT:

import pyOpt

def objfunc(x):

    f = -x[0] * x[1] * x[2]
    g = [0.0] * 2
    g[0] = x[0] + 2. * x[1] + 2. * x[2] - 72.0
    g[1] = -x[0] - 2. * x[1] - 2. * x[2]
    fail = 0
    return f, g, fail

opt_prob = pyOpt.Optimization('TP37 Constrained Problem', objfunc)
opt_prob.addObj('f')
opt_prob.addVar('x1', 'c', lower=0.0, upper=42.0, value=10.0)
opt_prob.addVar('x2', 'c', lower=0.0, upper=42.0, value=10.0)
opt_prob.addVar('x3', 'c', lower=0.0, upper=42.0, value=10.0)
opt_prob.addConGroup('g', 2, 'i')
print(opt_prob)
snopt = pyOpt.SNOPT()
[fstr, xstr, inform] = snopt(opt_prob)
print(opt_prob.solution(0))

But this failed with:

OSError: Failed to properly open SNOPT_print.out, ierror = 5002

I am not sure if something went wrong with the build, or maybe with the problem setup.

I would appreciate any help with this, thanks!

Overall improvements

Since this seems to be a rather old project, it may be worth to completely overhaul such as renaming the methods and package to a more python conform way.

What is your general idea on this?

I cannot import any solver - For example SLSQP or NSGA2. Attribute does not exists

from pyOpt import NSGA2
ImportError: cannot import name 'NSGA2' from 'pyOpt' (/Users/tghosh/Downloads/pyOpt-master/pyOpt/__init__.py)

File "<ipython-input-26-0efd7093218e>", line 1, in <module>
from pyOpt import SLSQP
ImportError: cannot import name 'SLSQP' from 'pyOpt' (/Users/tghosh/Downloads/pyOpt-master/pyOpt/__init__.py)
from pyOpt import pySLSQP
This works but object created using pySLSQP does not take an optimization problem as a parameter.


slsqp = pyOpt.pySLSQP
[fstr, xstr, inform] = slsqp(opt_prob,sens_type='FD')

TypeError: 'module' object is not callable

FTBS on Debian/testing with gfortran 10.2.0

Hi,
I'm trying to rebuild pyopt on Debian/Testing.
I run into the following error:

gfortran:f77: pyOpt/pyALGENCAN/source/evalal.f
gfortran:f77: pyOpt/pyALGENCAN/source/extrap.f
pyOpt/pyALGENCAN/source/evalal.f:408:35:

  408 |               call sevalgjacp(n,xp,gp,m,dpdcp,nalp,'T',gotj,inform)
      |                                   1
......
  802 |           call sevalgjacp(n,x,dum,m,ap,ptmp,'j',gotj,inform)
      |                              2     
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
pyOpt/pyALGENCAN/source/evalal.f:112:34:

  112 |               call sevalgjacp(n,x,g,m,p,nl,'T',gotj,inform)
      |                                  1
......
  802 |           call sevalgjacp(n,x,dum,m,ap,ptmp,'j',gotj,inform)
      |                              2    
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)

NSGA2 SegFault

Hello! I tried running the TP37 test problem script here . Everything runs well until it gets to NSGA2, where I get a Seg Fault. I'm on 64 bit MacOSx running Anaconda and Python 3.6.3. Any ideas what might be happening?

C02VM0BGHTDG$ python pyoptTest.py 
Error: IPOPT shared library failed to import

Optimization Problem -- TP37 Constrained Problem
================================================================================

        Objective Function: objfunc

    Objectives:
        Name        Value        Optimum
	     f               0             0

	Variables (c - continuous, i - integer, d - discrete):
        Name    Type       Value       Lower Bound  Upper Bound
	     x1       c	     10.000000       0.00e+00     4.20e+01 
	     x2       c	     10.000000       0.00e+00     4.20e+01 
	     x3       c	     10.000000       0.00e+00     4.20e+01 

	Constraints (i - inequality, e - equality):
        Name    Type                    Bounds
	     g1   	  i       -1.00e+21 <= 0.000000 <= 0.00e+00
	     g2   	  i       -1.00e+21 <= 0.000000 <= 0.00e+00


PSQP Solution to TP37 Constrained Problem
================================================================================

        Objective Function: objfunc

    Solution: 
--------------------------------------------------------------------------------
    Total Time:                    0.0008
    Total Function Evaluations:        42
    Sensitivities:        FD

    Objectives:
        Name        Value        Optimum
	     f           -3456             0

	Variables (c - continuous, i - integer, d - discrete):
        Name    Type       Value       Lower Bound  Upper Bound
	     x1       c	     24.000000       0.00e+00     4.20e+01 
	     x2       c	     12.000000       0.00e+00     4.20e+01 
	     x3       c	     12.000000       0.00e+00     4.20e+01 

	Constraints (i - inequality, e - equality):
        Name    Type                    Bounds
	     g1   	  i       -1.00e+21 <= 0.000000 <= 0.00e+00
	     g2   	  i       -1.00e+21 <= -72.000000 <= 0.00e+00

--------------------------------------------------------------------------------


SLSQP Solution to TP37 Constrained Problem
================================================================================

        Objective Function: objfunc

    Solution: 
--------------------------------------------------------------------------------
    Total Time:                    0.0005
    Total Function Evaluations:         0
    Sensitivities:        FD

    Objectives:
        Name        Value        Optimum
	     f           -3456             0

	Variables (c - continuous, i - integer, d - discrete):
        Name    Type       Value       Lower Bound  Upper Bound
	     x1       c	     24.000000       0.00e+00     4.20e+01 
	     x2       c	     12.000000       0.00e+00     4.20e+01 
	     x3       c	     12.000000       0.00e+00     4.20e+01 

	Constraints (i - inequality, e - equality):
        Name    Type                    Bounds
	     g1   	  i       -1.00e+21 <= 0.000000 <= 0.00e+00
	     g2   	  i       -1.00e+21 <= -72.000000 <= 0.00e+00

--------------------------------------------------------------------------------


CONMIN Solution to TP37 Constrained Problem
================================================================================

        Objective Function: objfunc

    Solution: 
--------------------------------------------------------------------------------
    Total Time:                    0.0010
    Total Function Evaluations:        88
    Sensitivities:        CS

    Objectives:
        Name        Value        Optimum
	     f           -3456             0

	Variables (c - continuous, i - integer, d - discrete):
        Name    Type       Value       Lower Bound  Upper Bound
	     x1       c	     23.989921       0.00e+00     4.20e+01 
	     x2       c	     12.002518       0.00e+00     4.20e+01 
	     x3       c	     12.002518       0.00e+00     4.20e+01 

	Constraints (i - inequality, e - equality):
        Name    Type                    Bounds
	     g1   	  i       -1.00e+21 <= -0.000006 <= 0.00e+00
	     g2   	  i       -1.00e+21 <= -71.999994 <= 0.00e+00

--------------------------------------------------------------------------------


COBYLA Solution to TP37 Constrained Problem
================================================================================

        Objective Function: objfunc

    Solution: 
--------------------------------------------------------------------------------
    Total Time:                    0.0010
    Total Function Evaluations:       112

    Objectives:
        Name        Value        Optimum
	     f           -3456             0

	Variables (c - continuous, i - integer, d - discrete):
        Name    Type       Value       Lower Bound  Upper Bound
	     x1       c	     24.000000       0.00e+00     4.20e+01 
	     x2       c	     11.999999       0.00e+00     4.20e+01 
	     x3       c	     12.000000       0.00e+00     4.20e+01 

	Constraints (i - inequality, e - equality):
        Name    Type                    Bounds
	     g1   	  i       -1.00e+21 <= 0.000000 <= 0.00e+00
	     g2   	  i       -1.00e+21 <= -72.000000 <= 0.00e+00

--------------------------------------------------------------------------------


SOLVOPT Solution to TP37 Constrained Problem
================================================================================

        Objective Function: objfunc

    Solution: 
--------------------------------------------------------------------------------
    Total Time:                    0.0090
    Total Function Evaluations:       201
    Sensitivities:        FD

    Objectives:
        Name        Value        Optimum
	     f           -3456             0

	Variables (c - continuous, i - integer, d - discrete):
        Name    Type       Value       Lower Bound  Upper Bound
	     x1       c	     23.999011       0.00e+00     4.20e+01 
	     x2       c	     12.000860       0.00e+00     4.20e+01 
	     x3       c	     11.999634       0.00e+00     4.20e+01 

	Constraints (i - inequality, e - equality):
        Name    Type                    Bounds
	     g1   	  i       -1.00e+21 <= -0.000000 <= 0.00e+00
	     g2   	  i       -1.00e+21 <= -72.000000 <= 0.00e+00

--------------------------------------------------------------------------------


KSOPT Solution to TP37 Constrained Problem
================================================================================

        Objective Function: objfunc

    Solution: 
--------------------------------------------------------------------------------
    Total Time:                    0.0119
    Total Function Evaluations:      2210
    Sensitivities:        FD

    Objectives:
        Name        Value        Optimum
	     f        -3453.76             0

	Variables (c - continuous, i - integer, d - discrete):
        Name    Type       Value       Lower Bound  Upper Bound
	     x1       c	     23.994597       0.00e+00     4.20e+01 
	     x2       c	     11.997383       0.00e+00     4.20e+01 
	     x3       c	     11.997531       0.00e+00     4.20e+01 

	Constraints (i - inequality, e - equality):
        Name    Type                    Bounds
	     g1   	  i       -1.00e+21 <= -0.015575 <= 0.00e+00
	     g2   	  i       -1.00e+21 <= -71.984425 <= 0.00e+00

--------------------------------------------------------------------------------


NSGA-II Solution to TP37 Constrained Problem
================================================================================

        Objective Function: objfunc

    Solution: 
--------------------------------------------------------------------------------
    Total Time:                    0.0808
    Total Function Evaluations:         0

    Objectives:
        Name        Value        Optimum
	     f        -3431.13             0

	Variables (c - continuous, i - integer, d - discrete):
        Name    Type       Value       Lower Bound  Upper Bound
	     x1       c	     22.781086       0.00e+00     4.20e+01 
	     x2       c	     13.195286       0.00e+00     4.20e+01 
	     x3       c	     11.414148       0.00e+00     4.20e+01 

	Constraints (i - inequality, e - equality):
        Name    Type                    Bounds
	     g1   	  i       -1.00e+21 <= -0.000047 <= 0.00e+00
	     g2   	  i       -1.00e+21 <= -71.999953 <= 0.00e+00

--------------------------------------------------------------------------------


ALGENCAN Solution to TP37 Constrained Problem
================================================================================

        Objective Function: objfunc

    Solution: 
--------------------------------------------------------------------------------
    Total Time:                    0.0025
    Total Function Evaluations:         0
    Lambda: [ 144.00000063    0.        ]
    Sensitivities:        FD

    Objectives:
        Name        Value        Optimum
	     f           -3456             0

	Variables (c - continuous, i - integer, d - discrete):
        Name    Type       Value       Lower Bound  Upper Bound
	     x1       c	     24.000000       0.00e+00     4.20e+01 
	     x2       c	     12.000000       0.00e+00     4.20e+01 
	     x3       c	     12.000000       0.00e+00     4.20e+01 

	Constraints (i - inequality, e - equality):
        Name    Type                    Bounds
	     g1   	  i       -1.00e+21 <= 0.000000 <= 0.00e+00
	     g2   	  i       -1.00e+21 <= -72.000000 <= 0.00e+00

--------------------------------------------------------------------------------

Segmentation fault: 11

Cannot Import MMA from pyMMA

Hello!

I Installed the pyOpt package as the instructions prescribe, but all shared libraries fail to import. Here is a sample trace for the MMA package. I am working on a M1 Max MacBook Pro.

Traceback (most recent call last):
  File "/Users/nettel/miniforge3/envs/topology-optim/lib/python3.11/site-packages/pyOpt/pyMMA/pyMMA.py", line 43, in <module>
    from . import mma
ImportError: dlopen(/Users/nettel/miniforge3/envs/topology-optim/lib/python3.11/site-packages/pyOpt/pyMMA/mma.cpython-311-darwin.so, 0x0002): symbol not found in flat namespace '_mma_'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/nettel/code/MMAstructures/pyMMAcode.py", line 3, in <module>
    from pyOpt.pyMMA import pyMMA
  File "/Users/nettel/miniforge3/envs/topology-optim/lib/python3.11/site-packages/pyOpt/pyMMA/pyMMA.py", line 45, in <module>
    raise ImportError('MMA shared library failed to import')
ImportError: MMA shared library failed to import

Apologies if I am not providing enough information, I am not entirely sure what I am doing!

Installation fails for Python 3.10

Running python setup.py build_ext --inplace under Python 3.10 via pyenv I get some compilation errors, such as:

WARN: CCompilerOpt.dist_test[636] : CCompilerOpt._dist_test_spawn[770] : Command (gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/path/.pyenv/versions/3.10-dev/include/python3.10 -c /mounts/path/.pyenv/versions/3.10-dev/lib/python3.10/site-packages/numpy/distutils/checks/cpu_avx512_spr.c -o /tmp/tmpyom63qb4/mounts/path/.pyenv/versions/3.10-dev/lib/python3.10/site-packages/numpy/distutils/checks/cpu_avx512_spr.o -MMD -MF /tmp/tmpyom63qb4/mounts/path/.pyenv/versions/3.10-dev/lib/python3.10/site-packages/numpy/distutils/checks/cpu_avx512_spr.o.d -msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mno-mmx -mavx512cd -mavx512vl -mavx512bw -mavx512dq -mavx512vnni -mavx512ifma -mavx512vbmi -mavx512vbmi2 -mavx512bitalg -mavx512vpopcntdq -Werror) failed with exit status 1 output -> 
/mounts/path/.pyenv/versions/3.10-dev/lib/python3.10/site-packages/numpy/distutils/checks/cpu_avx512_spr.c: In function ‘main’:
/mounts/path/.pyenv/versions/3.10-dev/lib/python3.10/site-packages/numpy/distutils/checks/cpu_avx512_spr.c:22:5: error: unknown type name ‘__m512h’; did you mean ‘__m512bh’?
   22 |     __m512h a = _mm512_loadu_ph((void*)argv[argc-1]);
      |     ^~~~~~~
      |     __m512bh
/mounts/path/.pyenv/versions/3.10-dev/lib/python3.10/site-packages/numpy/distutils/checks/cpu_avx512_spr.c:22:17: error: implicit declaration of function ‘_mm512_loadu_ph’; did you mean ‘_mm512_loadu_ps’? [-Werror=implicit-function-declaration]
   22 |     __m512h a = _mm512_loadu_ph((void*)argv[argc-1]);
      |                 ^~~~~~~~~~~~~~~
      |                 _mm512_loadu_ps
/mounts/path/.pyenv/versions/3.10-dev/lib/python3.10/site-packages/numpy/distutils/checks/cpu_avx512_spr.c:23:5: error: unknown type name ‘__m512h’; did you mean ‘__m512bh’?
   23 |     __m512h temp = _mm512_fmadd_ph(a, a, a);
      |     ^~~~~~~
      |     __m512bh
/mounts/path/.pyenv/versions/3.10-dev/lib/python3.10/site-packages/numpy/distutils/checks/cpu_avx512_spr.c:23:20: error: implicit declaration of function ‘_mm512_fmadd_ph’; did you mean ‘_mm512_fmadd_ps’? [-Werror=implicit-function-declaration]
   23 |     __m512h temp = _mm512_fmadd_ph(a, a, a);
      |                    ^~~~~~~~~~~~~~~
      |                    _mm512_fmadd_ps
/mounts/path/.pyenv/versions/3.10-dev/lib/python3.10/site-packages/numpy/distutils/checks/cpu_avx512_spr.c:24:5: error: implicit declaration of function ‘_mm512_storeu_ph’; did you mean ‘_mm512_storeu_ps’? [-Werror=implicit-function-declaration]
   24 |     _mm512_storeu_ph((void*)(argv[argc-1]), temp);
      |     ^~~~~~~~~~~~~~~~
      |     _mm512_storeu_ps
cc1: all warnings being treated as errors

WARN: CCompilerOpt.feature_test[1575] : testing failed

Any ideas what I could do would be highly appreciated! Thanks

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.