Modern mesh generation addresses the development of robust algorithms that construct a discrete representation of the geometry into polytopal elements conforming to divergent properties: (i) fidelity to complex geometrical features, (ii) support for high spatial resolution in areas of interest and sparsity elsewhere, and (iii) preservation of optimal element geometry (quality). The automation of the meshing process with respect to these properties is still considered a critical bottleneck as it is often tied to the development of complex algorithms. Although such algorithms produce meshes that satisfy desirable properties, they may entail a significant computational cost. To tackle the automation hurdles of current algorithms, this research work studies the adaption of Neural Networks (NNs) that have been proven efficient in automating complex problems, for the development of meshing algorithms. A machine learning meshing scheme for the generation of simplicial meshes is proposed based on the predictions of NNs. The scheme is applied to small contours with up to 16 edges. The data extracted from the meshed contours are utilized to train NNs that approximate the number of vertices to be inserted inside a contour cavity, their location, and the connectivity. Based on an element quality metric, the results show a maximum deviation of 27.3% on the minimum quality between the elements of the meshes generated by the scheme and the ones generated from a reference mesher. This level of deviation corresponds to produced meshes with element angles that lie between 28°<Ξ<106°. Such results validate the use of the developed scheme for good quality mesh generation. The trained NNs of the meshing scheme, along with a set of NNs that reposition vertices of a mesh, are used to develop a machine learning based mesh improvement algorithm that applies operations to improve the quality of elements. The efficiency of the operations is validated and evaluated after their inclusion to local mesh improvement schemes that are applied to: (i) perturbed static meshes containing low quality elements and (ii) dynamic meshes that are subjected to simulations. The operations improve the quality for all test cases at a reduced computational cost when compared to existing operations. In the worst case, the application of the improvement schemes result in static meshes with element angles between 13°<Ξ<132° and in dynamic meshes with minimum and maximum angles that lie between 35°<Ξmin<44° and 90°<Ξmax<108°, respectively, during the course of the simulation. Finally, an iterative machine learning based scheme is developed to mesh larger uniform and adaptive element size meshes. Based on a high-resolution contour that represents the boundaries of a geometry, an initial mesh for a low-resolution contour is created using the meshing scheme developed for small contours. Next, vertices are inserted in the edges of the elements and projected to the high-resolution contour. Each sub-contour created after this process is meshed using the meshing scheme. The quality of the elements is improved using the developed mesh improvement algorithm. The application iterates until an element target edge length is achieved. Examples of meshed geometries represented by high resolution contours with up to 201 edges, demonstrate that the application produces good quality uniform and adaptive meshes containing up to 1,658 elements with angles laying between 31°<Ξ<109°.